How do I write files in Node.js?

Writing to a file is another of the basic programming tasks that one usually needs to know about - luckily, this task is very simple in Node.js. We can use the handy writeFile method inside the standard library's fs module, which can save all sorts of time and trouble.

fs = require('fs');
fs.writeFile(filename, data, [encoding], [callback])

file = (string) filepath of the file to write

data = (string or buffer) the data you want to write to the file

encoding = (optional string) the encoding of the data. Possible encodings are 'ascii', 'utf8', and 'base64'. If no encoding provided, then 'utf8' is assumed.

callback = (optional function (err) {}) If there is no error, err === null, otherwise err contains the error message.

So if we wanted to write "Hello World" to helloworld.txt:

fs = require('fs');
fs.writeFile('helloworld.txt', 'Hello World!', function (err) {
  if (err) return console.log(err);
  console.log('Hello World > helloworld.txt');
[contents of helloworld.txt]:
Hello World!

If we purposely want to cause an error, we can try to write to a file that we don't have permission to access:

fs = require('fs')
fs.writeFile('/etc/doesntexist', 'abc', function (err,data) {
  if (err) {
    return console.log(err);
{ stack: [Getter/Setter],
  arguments: undefined,
  type: undefined,
  message: 'EACCES, Permission denied \'/etc/doesntexist\'',
  errno: 13,
  code: 'EACCES',
  path: '/etc/doesntexist' }
Scroll to top