No callback file operations
Reading and writing files in JS tends to get messy. But not anymore, with Node 8, async / await support combined with Util.promisify we can read and write to a file without a single callback or “then”. Enough talk, actual code ---
use strict';
const FS = require('fs');const Util = require('util');
const updateFile = async (filename = 'fun.xml') => { const readFile = Util.promisify(FS.readFile); // promisify readFile so it works with await const fileContents = await readFile(`${__dirname}/xml/${filename}`); console.log('Current file contents - ', fileContents.toString());
const writeFile = Util.promisify(FS.writeFile); // promisify writeFile so it works with await await writeFile(`${__dirname}/xml/${filename}`, fileContents.toString().replace(/foo/, 'bar')); console.log('File updated!');};
updateFile();
Now we can just run this simply by -
$ node file_fun.js
That’s it, we read and wrote to a file in JS without any ugly callbacks, “thens” or libraries.