Node JS fs.writeFile() Method
Last Updated :
03 Apr, 2025
In Node.js, the fs.writeFile() method is a built-in function used to asynchronously write data to a file. This method allows you to create a new file or overwrite an existing one with the specified content, without blocking the event loop, thus maintaining the non-blocking nature of Node.js applications.
Syntax
fs.writeFile(file, data, options, callback);
Parameters
This method accepts four parameters as mentioned above and described below:
- file: It is a string, Buffer, URL or file description integer that denotes the path of the file where it has to be written. Using a file descriptor will make it behave similarly to fs.write() method.
- data: It is a string, Buffer, TypedArray or DataView that will be written to the file.
- options: It is a string or object that can be used to specify optional parameters that will affect the output. It has three optional parameters:
- encoding: It is a string value that specifies the encoding of the file. The default value is ‘utf8’.
- mode: It is an integer value that specifies the file mode. The default value is 0o666.
- flag: A string value specifies the flag used while writing to the file. The default value is ‘w’.
- callback: It is the function that would be called when the method is executed.
- err: It is an error that would be thrown if the operation fails.
Asynchronous vs. Synchronous File Writing
Node.js provides both asynchronous and synchronous methods for writing files:
- fs.writeFile(): Asynchronously writes data to a file, allowing other operations to continue while the file is being written.
- fs.writeFileSync(): Synchronously writes data to a file, blocking the event loop until the operation completes.
For non-blocking behavior, fs.writeFile() is preferred.
Implementing fs.writeFile() in a Node.js Application
To use fs.writeFile() in your Node.js application, follow these steps:
Step 1: Initialize a Node.js Project
Open your terminal and create a new directory for your project:
mkdir nodejs
cd nodejs
Step 2:Initialize a new Node.js project:
npm init -y
Create the Application File
touch index.js
Project Structure

Project Structure
In index.js, add the following code to write data to a file asynchronously:
JavaScript
const fs = require('fs');
const data = 'Hello, world!';
fs.writeFile('output.txt', data, 'utf8', (err) => {
if (err) {
console.error('Error writing file:', err);
return;
}
console.log('File written successfully!');
});
Step 3: Run the Application
Ensure you have the necessary permissions to write to the directory. Then, run your application:
node index.js
If successful, ‘output.txt’ will be created in your project directory with the content ‘Hello, world!’.
Error Handling with fs.writeFile()
Proper error handling is crucial when working with file operations. The callback function’s err parameter will contain error information if an error occurs. For example:
fs.writeFile('output.txt', data, 'utf8', (err) => {
if (err) {
console.error('Error writing file:', err);
return;
}
console.log('File written successfully!');
});
Best Practices
- Always Handle Errors: Ensure your callback functions handle errors to prevent application crashes.
- Use Appropriate Encoding: Specify the correct encoding to ensure data is written correctly.
- Consider File Size: For large files, consider using streams to write data in chunks, preventing high memory usage.
Conclusion
The fs.writeFile() method is a powerful tool for asynchronous file writing in Node.js, contributing to efficient and non-blocking applications. By understanding its usage, syntax, and best practices, you can effectively manage file operations in your projects.
Similar Reads
Node JS fs.readFile() Method
âIn Node.js, the fs.readFile() method is a fundamental tool for reading files asynchronously, allowing your application to remain responsive while accessing file data. This method is part of Node.js's File System (fs) module, which provides an API for interacting with the file system. Syntaxfs.readF
4 min read
Node.js fs.exists() Method
The fs exists method in node is used to check if the input file or the directory exists or not. It is an inbuilt application programming interface of fs module which provides an API for interacting with the file system in a manner closely modeled around POSIX functions. Syntax:fs.exists( path, callb
2 min read
Node fs.existsSync() Method
In Node.js, the fs.existsSync() method checks if a file or folder exists at a given path. It's synchronous, meaning it pauses the program until it finds the result (either true if it exists, or false if it doesn't). Because it stops everything while it works, itâs best used for quick checks in small
3 min read
Node fs.mkdir() Method
The fs.mkdir() method in Node.js is used to create a directory asynchronously. Syntax fs.mkdir(path, mode, callback)Parameters: This method accepts three parameters as mentioned above and described below: path: This parameter holds the path of the directory that has to be created.mode: This paramete
2 min read
Node.js fs.truncate() Method
The fs.truncate() method in node.js is used to change the size of the file i.e either increase or decrease the file size. This method changes the length of the file at the path by len bytes. If len represents a length shorter than the file's current length, the file is truncated to that length. If i
2 min read
Node.js fs.renameSync() Method
In Node.js, the fs.renameSync() method is part of the built-in File System (fs) module and is used to rename or move files and directories synchronously. This method is useful when you need to quickly change a file's name or move it to a different directory synchronously. It blocks the execution of
3 min read
Node.js fs.rmdir() Method
The fs.rmdir() method is used to delete a directory at the given path. It can also be used recursively to remove nested directories. Syntax: fs.rmdir( path, options, callback )Parameters: This method accepts three parameters as mentioned above and described below: path: It holds the path of the dire
3 min read
Node.js fs.stat() Method
The fs.stat() method is used to return information about the given file or directory. It returns an fs.Stat object which has several properties and methods to get details about the file or directory. Syntax:fs.stat( path, options, callback )Parameters: This method accept three parameters as mentione
3 min read
Node.js fs.mkdtempSync() Method
The fs.mkdtempSync() method is an inbuilt application programming interface of fs module which provides an API for interacting with the file system in a manner closely modeled around standard POSIX functions. The fs.mkdtempSync() method creates a unique temporary directory. This is the synchronous v
2 min read
Node.js fs.realpath() Method
The fs.realPath() method is used to compute the canonical pathname of the given path. It does so by resolving the ., .. and the symbolic links in the path. Syntax: fs.realpath( path, options, callback ) Parameters: This method accept three parameters as mentioned above and described below: path: It
3 min read