Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Writing Files with Node.js
📖 Scenario: You are building a simple Node.js script to save user notes to a text file on your computer.This is useful for keeping records or logs in many real-world applications.
🎯 Goal: Learn how to write text data to a file using Node.js built-in fs module.You will create a file and write some content into it step-by-step.
📋 What You'll Learn
Use Node.js fs module to write files
Create a string variable with note content
Use fs.writeFileSync to write the content to a file
Name the file note.txt
💡 Why This Matters
🌍 Real World
Writing files is common for saving logs, user data, or configuration in many Node.js applications.
💼 Career
Knowing how to handle file operations is essential for backend developers and automation scripts.
Progress0 / 4 steps
1
Import the fs module
Write a line to import the Node.js fs module using import fs from 'fs';
Node.js
Hint
Use ES module syntax to import fs like this: import fs from 'fs';
2
Create a string variable with note content
Create a variable called noteContent and set it to the string 'This is my first note.'
Node.js
Hint
Use const to create the variable and assign the exact string.
3
Write the note content to a file
Use fs.writeFileSync to write the content of noteContent to a file named 'note.txt'
Node.js
Hint
Call fs.writeFileSync with the filename and the string variable as arguments.
4
Add a confirmation message
Add a line to log 'Note saved successfully!' to the console using console.log
Node.js
Hint
Use console.log to show a success message after writing the file.
Practice
(1/5)
1. What is the main purpose of using the fs/promises module in Node.js when writing files?
easy
A. To write files using promises and async/await for cleaner code
B. To read files synchronously
C. To create HTTP servers
D. To manage environment variables
Solution
Step 1: Understand the role of fs/promises
The fs/promises module provides promise-based versions of file system functions, allowing use of async/await.
Step 2: Identify the purpose related to writing files
It is mainly used to write files asynchronously with cleaner syntax compared to callbacks.
Final Answer:
To write files using promises and async/await for cleaner code -> Option A
Quick Check:
fs/promises = async file writing [OK]
Hint: Remember fs/promises is for async file operations [OK]
Common Mistakes:
Confusing fs/promises with synchronous fs methods
Thinking fs/promises is for reading environment variables
Assuming fs/promises creates servers
2. Which of the following is the correct syntax to write 'Hello World' to a file named 'greet.txt' using fs/promises in Node.js?
easy
A. fs.writeFileSync('greet.txt', 'Hello World');
B. fs.promises.write('greet.txt', 'Hello World');
C. await fs.writeFile('greet.txt', 'Hello World');
D. await fs.write('greet.txt', 'Hello World');
Solution
Step 1: Recall the correct method name in fs/promises
The method to write files is writeFile, used with await for promises.
Step 2: Check syntax correctness
await fs.writeFile('greet.txt', 'Hello World'); uses await fs.writeFile('greet.txt', 'Hello World'); which is correct syntax for async write.
Final Answer:
await fs.writeFile('greet.txt', 'Hello World'); -> Option C
Quick Check:
writeFile + await = correct syntax [OK]
Hint: Use await with fs.writeFile for async writing [OK]
Common Mistakes:
Using writeFileSync without await in async code
Calling non-existent fs.promises.write method
Omitting await with promise-based methods
3. What will be the output of the following code snippet?
import { writeFile } from 'fs/promises';
async function save() {
await writeFile('data.txt', 'Node.js Rocks!');
console.log('File saved');
}
save();
medium
A. No output
B. File saved
C. File saved\nNode.js Rocks!
D. SyntaxError
Solution
Step 1: Analyze the async function behavior
The function writes 'Node.js Rocks!' to 'data.txt' asynchronously, then logs 'File saved'.
Step 2: Determine console output
Since writeFile completes before console.log, the output is 'File saved' printed once.
Final Answer:
File saved -> Option B
Quick Check:
Async write then log = 'File saved' [OK]
Hint: Async writeFile logs after completion [OK]
Common Mistakes:
Expecting file content to print to console
Confusing syntax error with valid import
Thinking no output occurs without explicit return
4. Identify the error in the following code that attempts to write to a file:
import fs from 'fs/promises';
async function writeData() {
fs.writeFile('output.txt', 'Test data');
console.log('Done');
}
writeData();
medium
A. writeFile method does not exist in fs/promises
B. Incorrect import statement for fs/promises
C. File path 'output.txt' is invalid
D. Missing await before fs.writeFile causing unhandled promise
Solution
Step 1: Check async function usage
The function calls fs.writeFile but does not await it, so the promise is not handled properly.
Step 2: Understand consequences of missing await
Without await, the write operation may not complete before 'Done' logs, and errors won't be caught.
Final Answer:
Missing await before fs.writeFile causing unhandled promise -> Option D
Quick Check:
Always await async fs methods [OK]
Hint: Always await async file writes to avoid errors [OK]
Common Mistakes:
Forgetting await with async fs methods
Assuming import syntax is wrong when it is correct
Blaming file path without checking code first
5. You want to write multiple lines to a file 'log.txt' asynchronously, appending each new line without overwriting. Which approach correctly achieves this using fs/promises?
hard
A. Use await fs.appendFile('log.txt', 'New line\n'); inside an async function
B. Use await fs.writeFile('log.txt', 'New line\n'); repeatedly
C. Use fs.writeFileSync('log.txt', 'New line\n'); inside async function
D. Use fs.appendFileSync('log.txt', 'New line\n'); without async
Solution
Step 1: Understand file appending vs overwriting
To add lines without erasing existing content, appending is needed, not writeFile which overwrites.
Step 2: Choose correct async method
fs.appendFile from fs/promises appends asynchronously and works with await.
Final Answer:
Use await fs.appendFile('log.txt', 'New line\n'); inside an async function -> Option A
Quick Check:
appendFile + await = append lines safely [OK]
Hint: Use appendFile to add lines without erasing [OK]