We create directories to organize files and remove them when they are no longer needed. This helps keep your computer tidy and your projects organized.
Creating and removing directories in Node.js
Start learning this pattern below
Jump into concepts and practice - no test required
import { mkdir, rmdir } from 'node:fs/promises'; // Create a directory await mkdir(path, { recursive: true }); // Remove a directory await rmdir(path);
mkdir creates a new directory. The recursive: true option lets you create nested folders at once.
rmdir removes an empty directory. It will fail if the directory has files inside.
myFolder in the current location.await mkdir('myFolder');
parent and inside it child folder, even if parent does not exist yet.await mkdir('parent/child', { recursive: true });
myFolder if it is empty.await rmdir('myFolder');
This program creates a folder called testDir and then removes it. It prints messages to show what it did.
import { mkdir, rmdir } from 'node:fs/promises'; async function manageDirectories() { const folder = 'testDir'; // Create a directory await mkdir(folder, { recursive: true }); console.log(`Created directory: ${folder}`); // Remove the directory await rmdir(folder); console.log(`Removed directory: ${folder}`); } manageDirectories();
Trying to remove a directory that has files will cause an error. You must delete files first or use other methods.
Using recursive: true with mkdir helps create nested folders easily.
Always handle errors in real programs to avoid crashes when folders exist or don't exist.
Use mkdir to create folders and rmdir to remove empty folders.
The recursive option lets you create nested folders in one step.
Removing folders only works if they are empty; otherwise, delete files first.
Practice
Solution
Step 1: Understand directory creation methods
Node.js provides fs.mkdir() to create directories.Step 2: Differentiate from removal methods
fs.rmdir() is for removing directories, not creating.Final Answer:
fs.mkdir() -> Option DQuick Check:
Create directory = fs.mkdir() [OK]
- Confusing fs.mkdir() with fs.rmdir()
- Using non-existent fs.createDir()
- Trying to use fs.deleteDir() which doesn't exist
parent/child in Node.js?Solution
Step 1: Recognize recursive option for nested folders
To create nested directories, use { recursive: true } option with fs.mkdir().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.Final Answer:
fs.mkdir('parent/child', { recursive: true }, callback) -> Option BQuick Check:
Nested folders need recursive: true [OK]
- Omitting recursive option for nested directories
- Using fs.rmdir instead of fs.mkdir
- Using incorrect option name like nested
const fs = require('fs');
fs.rmdir('myFolder', (err) => {
if (err) console.log('Error:', err.message);
else console.log('Folder removed');
});Assuming
myFolder contains files.Solution
Step 1: Understand fs.rmdir behavior
fs.rmdir only removes empty directories; if folder has files, it throws an error.Step 2: Analyze error handling in callback
The callback logs error message if removal fails due to non-empty folder.Final Answer:
Error logged because folder is not empty -> Option CQuick Check:
Non-empty folder removal = error [OK]
- Assuming fs.rmdir removes non-empty folders
- Expecting folder rename instead of removal
- Thinking code throws syntax error
const fs = require('fs');
fs.rmdir('testDir', { recursive: true }, (err) => {
if (err) throw err;
console.log('Directory removed');
});Solution
Step 1: Check fs.rmdir method options
fs.rmdir does not support the recursive option; fs.rm should be used instead for recursive removal.Step 2: Understand correct method for recursive removal
Use fs.rm with { recursive: true } to remove non-empty directories recursively.Final Answer:
fs.rmdir does not support recursive option -> Option AQuick Check:
Recursive removal needs fs.rm, not fs.rmdir [OK]
- Using recursive option with fs.rmdir
- Thinking callback is missing
- Believing directory path must be absolute
projects/app/src and then remove it completely including all files inside. Which sequence of Node.js methods should you use?Solution
Step 1: Create nested directories
Use fs.mkdir with { recursive: true } to create nested folders in one step.Step 2: Remove directory with all contents
Use fs.rm with { recursive: true, force: true } to delete directory and all files inside safely.Final Answer:
Use fs.mkdir with { recursive: true } to create, then fs.rm with { recursive: true, force: true } to remove -> Option AQuick Check:
Nested create + recursive remove = fs.mkdir + fs.rm [OK]
- Using fs.rmdir to remove non-empty directories
- Omitting recursive option when creating nested folders
- Using fs.unlink which deletes files, not folders
