Bird
Raised Fist0
Node.jsframework~10 mins

Creating and removing directories in Node.js - Interactive Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to import the Node.js module for working with the file system.

Node.js
const fs = require('[1]');
Drag options to blanks, or click blank then click option'
Afs
Bhttp
Cpath
Dos
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'http' or 'os' instead of 'fs'.
Forgetting to require the module before using it.
2fill in blank
medium

Complete the code to create a new directory named 'myFolder' synchronously.

Node.js
fs.[1]Sync('myFolder');
Drag options to blanks, or click blank then click option'
AreadFile
Bmkdir
Creaddir
DwriteFile
Attempts:
3 left
💡 Hint
Common Mistakes
Using asynchronous methods without callbacks.
Using methods unrelated to directory creation.
3fill in blank
hard

Fix the error in the code to remove the directory named 'oldFolder' synchronously.

Node.js
fs.[1]Sync('oldFolder');
Drag options to blanks, or click blank then click option'
Aremove
Bunlink
Crm
Drmdir
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'unlink' which is for files, not directories.
Using 'remove' which is not a valid fs method.
4fill in blank
hard

Fill both blanks to create a directory 'newDir' only if it does not exist.

Node.js
if (!fs.existsSync('newDir')) {
  fs.[1]Sync('newDir', { [2]: true });
}
Drag options to blanks, or click blank then click option'
Amkdir
Brmdir
Crecursive
Dforce
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'rmdir' instead of 'mkdir'.
Using 'force' option which does not exist here.
5fill in blank
hard

Fill all three blanks to remove a directory 'tempDir' and all its contents synchronously.

Node.js
fs.[1]Sync('tempDir', { [2]: true, [3]: true });
Drag options to blanks, or click blank then click option'
Armdir
Brecursive
Cforce
Drm
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'rmdir' which cannot remove non-empty directories without options.
Omitting 'force' option causing errors if files are protected.

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