I am trying to append a string to a log file. However writeFile will erase the content each time before writing the string.
fs.writeFile('log.txt', 'Hello Node', function (err) { if (err) throw err; console.log('It's saved!'); }); // => message.txt erased, contains only 'Hello Node'
Any idea how to do this the easy way?
Advertisement
Answer
For occasional appends, you can use appendFile
, which creates a new file handle each time it’s called:
const fs = require('fs'); fs.appendFile('message.txt', 'data to append', function (err) { if (err) throw err; console.log('Saved!'); });
const fs = require('fs'); fs.appendFileSync('message.txt', 'data to append');
But if you append repeatedly to the same file, it’s much better to reuse the file handle.