Writing files with Node.js
Writing a file
The easiest way to write to files in Node.js is to use the fs.writeFile()
API.
const = ('node:fs');
const = 'Some content!';
.('/Users/joe/test.txt', , => {
if () {
.();
} else {
// file written successfully
}
});
Writing a file synchronously
Alternatively, you can use the synchronous version fs.writeFileSync()
:
const = ('node:fs');
const = 'Some content!';
try {
.('/Users/joe/test.txt', );
// file written successfully
} catch () {
.();
}
You can also use the promise-based fsPromises.writeFile()
method offered by the fs/promises
module:
const = ('node:fs/promises');
async function () {
try {
const = 'Some content!';
await .('/Users/joe/test.txt', );
} catch () {
.();
}
}
();
By default, this API will replace the contents of the file if it does already exist.
You can modify the default by specifying a flag:
fs.writeFile('/Users/joe/test.txt', content, { : 'a+' }, => {});
The flags you'll likely use are
Flag | Description | File gets created if it doesn't exist |
---|---|---|
r+ | This flag opens the file for reading and writing | ❌ |
w+ | This flag opens the file for reading and writing and it also positions the stream at the beginning of the file | ✅ |
a | This flag opens the file for writing and it also positions the stream at the end of the file | ✅ |
a+ | This flag opens the file for reading and writing and it also positions the stream at the end of the file | ✅ |
- You can find more information about the flags in the fs documentation.
Appending content to a file
Appending to files is handy when you don't want to overwrite a file with new content, but rather add to it.
Examples
A handy method to append content to the end of a file is fs.appendFile()
(and its fs.appendFileSync()
counterpart):
const = ('node:fs');
const = 'Some content!';
.('file.log', , => {
if () {
.();
} else {
// done!
}
});
Example with Promises
Here is a fsPromises.appendFile()
example:
const = ('node:fs/promises');
async function () {
try {
const = 'Some content!';
await .('/Users/joe/test.txt', );
} catch () {
.();
}
}
();