Bird
Raised Fist0
Node.jsframework~3 mins

Creating and removing directories in Node.js - Why You Should Know This

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
The Big Idea

Discover how a few lines of code can save you hours of tedious folder management!

The Scenario

Imagine you need to organize files by creating folders and cleaning up old ones manually on your computer every time your app runs.

The Problem

Manually creating and deleting folders is slow, repetitive, and easy to forget, leading to clutter or missing directories that break your app.

The Solution

Node.js provides simple commands to create and remove directories programmatically, making file management automatic and reliable.

Before vs After
Before
Open file explorer, right-click, create folder, delete folder manually
After
const fs = require('fs'); fs.mkdirSync('folderName'); fs.rmdirSync('folderName');
What It Enables

You can build apps that organize files on their own, keeping everything neat without manual effort.

Real Life Example

A photo app that creates a new folder for each event and deletes empty folders automatically to save space.

Key Takeaways

Manual folder management is slow and error-prone.

Node.js lets you create and remove directories with simple commands.

This automation keeps your app's files organized and your workflow smooth.

Practice

(1/5)
1. Which Node.js method is used to create a new directory?
easy
A. fs.createDir()
B. fs.rmdir()
C. fs.deleteDir()
D. fs.mkdir()

Solution

  1. Step 1: Understand directory creation methods

    Node.js provides fs.mkdir() to create directories.
  2. Step 2: Differentiate from removal methods

    fs.rmdir() is for removing directories, not creating.
  3. Final Answer:

    fs.mkdir() -> Option D
  4. Quick Check:

    Create directory = fs.mkdir() [OK]
Hint: Use fs.mkdir() to create folders, not fs.rmdir() [OK]
Common Mistakes:
  • Confusing fs.mkdir() with fs.rmdir()
  • Using non-existent fs.createDir()
  • Trying to use fs.deleteDir() which doesn't exist
2. Which of the following is the correct syntax to create a nested directory parent/child in Node.js?
easy
A. fs.mkdir('parent/child', callback)
B. fs.mkdir('parent/child', { recursive: true }, callback)
C. fs.rmdir('parent/child', { recursive: true }, callback)
D. fs.mkdir('parent/child', { nested: true }, callback)

Solution

  1. Step 1: Recognize recursive option for nested folders

    To create nested directories, use { recursive: true } option with fs.mkdir().
  2. Step 2: Confirm correct method and options

    fs.mkdir with recursive true creates all needed folders; fs.rmdir is for removal, and nested option doesn't exist.
  3. Final Answer:

    fs.mkdir('parent/child', { recursive: true }, callback) -> Option B
  4. Quick Check:

    Nested folders need recursive: true [OK]
Hint: Use { recursive: true } with fs.mkdir for nested folders [OK]
Common Mistakes:
  • Omitting recursive option for nested directories
  • Using fs.rmdir instead of fs.mkdir
  • Using incorrect option name like nested
3. What will happen if you run the following code snippet in Node.js?
const fs = require('fs');
fs.rmdir('myFolder', (err) => {
  if (err) console.log('Error:', err.message);
  else console.log('Folder removed');
});

Assuming myFolder contains files.
medium
A. Folder is removed successfully
B. Code throws a syntax error
C. Error logged because folder is not empty
D. Folder is renamed instead of removed

Solution

  1. Step 1: Understand fs.rmdir behavior

    fs.rmdir only removes empty directories; if folder has files, it throws an error.
  2. Step 2: Analyze error handling in callback

    The callback logs error message if removal fails due to non-empty folder.
  3. Final Answer:

    Error logged because folder is not empty -> Option C
  4. Quick Check:

    Non-empty folder removal = error [OK]
Hint: fs.rmdir fails if folder has files; must delete files first [OK]
Common Mistakes:
  • Assuming fs.rmdir removes non-empty folders
  • Expecting folder rename instead of removal
  • Thinking code throws syntax error
4. Identify the error in this code snippet that tries to remove a directory:
const fs = require('fs');
fs.rmdir('testDir', { recursive: true }, (err) => {
  if (err) throw err;
  console.log('Directory removed');
});
medium
A. fs.rmdir does not support recursive option
B. Callback function is missing
C. fs.rmdir cannot remove directories
D. Directory path must be absolute

Solution

  1. Step 1: Check fs.rmdir method options

    fs.rmdir does not support the recursive option; fs.rm should be used instead for recursive removal.
  2. Step 2: Understand correct method for recursive removal

    Use fs.rm with { recursive: true } to remove non-empty directories recursively.
  3. Final Answer:

    fs.rmdir does not support recursive option -> Option A
  4. Quick Check:

    Recursive removal needs fs.rm, not fs.rmdir [OK]
Hint: Use fs.rm for recursive removal, not fs.rmdir [OK]
Common Mistakes:
  • Using recursive option with fs.rmdir
  • Thinking callback is missing
  • Believing directory path must be absolute
5. You want to create a nested directory projects/app/src and then remove it completely including all files inside. Which sequence of Node.js methods should you use?
hard
A. Use fs.mkdir with { recursive: true } to create, then fs.rm with { recursive: true, force: true } to remove
B. Use fs.mkdir without options to create, then fs.rmdir to remove
C. Use fs.mkdir with { recursive: true } to create, then fs.rmdir to remove
D. Use fs.mkdir to create, then fs.unlink to remove

Solution

  1. Step 1: Create nested directories

    Use fs.mkdir with { recursive: true } to create nested folders in one step.
  2. Step 2: Remove directory with all contents

    Use fs.rm with { recursive: true, force: true } to delete directory and all files inside safely.
  3. Final Answer:

    Use fs.mkdir with { recursive: true } to create, then fs.rm with { recursive: true, force: true } to remove -> Option A
  4. Quick Check:

    Nested create + recursive remove = fs.mkdir + fs.rm [OK]
Hint: Create nested with mkdir recursive, remove all with rm recursive force [OK]
Common Mistakes:
  • Using fs.rmdir to remove non-empty directories
  • Omitting recursive option when creating nested folders
  • Using fs.unlink which deletes files, not folders