How to Create a Directory using Node.js ?

In this article, we will create a directory using NodeJS.

NodeJS has Filesystem(fs) core module, which enables interacting with the file system, has Node.js fs.mkdir() method or Node.js fs.mkdirSync() method method, to create new directory /parent directory.

Prerequisites:

The approaches for creating a directory using Node are mentioned below:

Table of Content

  • Using Node.js fs.mkdir()
  • Using Node.js fs.mkdirSync()

Using Node.js fs.mkdir()

Let’s create a new directory using fs.mkdir() method. Initially, we have single file index.js, as we can see in the given image.

index.js

Example: Edit the index.js file.

Node
const fs = require("fs");
const path = "./new-Directory";

fs.access(path, (error) => {
 
  // To check if the given directory 
  // already exists or not
  if (error) {
    // If current directory does not exist
    // then create it
    fs.mkdir(path, (error) => {
      if (error) {
        console.log(error);
      } else {
        console.log("New Directory created successfully !!");
      }
    });
  } else {
    console.log("Given Directory already exists !!");
  }
});

Output:

  • You can check the terminal output.
  • After executing the above code, node.js will create a new directory if it does not exist. A new Directory named — “new-Directory” is created.

Creating Parent Directories: If we want to create multilevel directory, fs.mkdir() has optional recursive Boolean value we can pass as a parameter. 

Node
const fs = require("fs");

// Multilevel directory
const path = "./directory1/directory2/new-directory";

fs.access(path, (error) => {

  // To check if given directory 
  // already exists or not
  if (error) {
    // If current directory does not exist then create it
    fs.mkdir(path, { recursive: true }, (error) => {
      if (error) {
        console.log(error);
      } else {
        console.log("New Directory created successfully !!");
      }
    });
  } else {
    console.log("Given Directory already exists !!");
  }
});

Output:

  • New Directory created successfully.

    index.js

  • We can see that a multilevel directory “directory1\directory2\new-directory” is created.

    index.js

Removing a folder

If we want to delete a given directory, we can use Node.js fs.rmdir() Method or Node.js fs.rmdirSync() Method, it will become complicated if the directory contain some file content.

So we can use a third party package fs-extra provided by npm to delete the given directory. Let’s install the given package using npm.

Run the following command in your command line

npm install fs-extra

Example: Now run the following code to delete the given directory

Node
const fs1 = require("fs-extra");

const path = "./directory1";

fs1.remove(path, (error) => {
  if (error) {
    console.log(error);
  } else {
    console.log("Folder Deleted Successfully !!");
  }
});

Output

index.js

Using Node.js fs.mkdirSync()

Let’s create a new directory using fs.mkdirSync() method. Initially, we have single file index.js, as we can see in the given image.

Example:

Node
const fs1 = require("fs-extra");

// Node.js program to demonstrate the
// fs.mkdirSync() method

const fs = require("fs");

const path = require("path");

// Using fs.exists() method to
// Check that the directory exists or not
console.log("Checking for directory" + path.join(__dirname, "Tisu"));
fs.exists(path.join(__dirname, "Tisu"), (exists) => {
  console.log(exists ? "The directory already exists" : "Not found!");
});

// Using fs.mkdirSync() method
// To create the directory recursively
fs.mkdirSync(path.join(__dirname, "Tisu"), true);

// Using fs.exists() method to
// Check that the directory exists or not
fs.exists(path.join(__dirname, "Tisu"), (exists) => {
  console.log(exists ? "The directory already exists" : "Not found!");
});

Output:

Conclusion

Creating a directory using Node.js involves using the fs module’s mkdir or mkdirSync methods. These methods allow asynchronous or synchronous directory creation, respectively. Ensure to handle errors properly, especially for asynchronous operations, to prevent runtime issues and enhance the robustness of your Node.js application.