Bird
Raised Fist0
Node.jsframework~15 mins

Writing files in Node.js - Mini Project: Build & Apply

Choose your learning style10 modes available

Start learning this pattern below

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

  1. 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.
  2. Step 2: Identify the purpose related to writing files

    It is mainly used to write files asynchronously with cleaner syntax compared to callbacks.
  3. Final Answer:

    To write files using promises and async/await for cleaner code -> Option A
  4. 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

  1. Step 1: Recall the correct method name in fs/promises

    The method to write files is writeFile, used with await for promises.
  2. 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.
  3. Final Answer:

    await fs.writeFile('greet.txt', 'Hello World'); -> Option C
  4. 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

  1. Step 1: Analyze the async function behavior

    The function writes 'Node.js Rocks!' to 'data.txt' asynchronously, then logs 'File saved'.
  2. Step 2: Determine console output

    Since writeFile completes before console.log, the output is 'File saved' printed once.
  3. Final Answer:

    File saved -> Option B
  4. 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

  1. Step 1: Check async function usage

    The function calls fs.writeFile but does not await it, so the promise is not handled properly.
  2. Step 2: Understand consequences of missing await

    Without await, the write operation may not complete before 'Done' logs, and errors won't be caught.
  3. Final Answer:

    Missing await before fs.writeFile causing unhandled promise -> Option D
  4. 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

  1. Step 1: Understand file appending vs overwriting

    To add lines without erasing existing content, appending is needed, not writeFile which overwrites.
  2. Step 2: Choose correct async method

    fs.appendFile from fs/promises appends asynchronously and works with await.
  3. Final Answer:

    Use await fs.appendFile('log.txt', 'New line\n'); inside an async function -> Option A
  4. Quick Check:

    appendFile + await = append lines safely [OK]
Hint: Use appendFile to add lines without erasing [OK]
Common Mistakes:
  • Using writeFile which overwrites file content
  • Using synchronous methods in async code
  • Not adding newline characters when appending