How to check if a directory exists in Node.js

The Node.js fs native module provides several useful methods that you can use to work with directories. The simplest way to check if a certain directory exists in Node.js is by using the fs.existsSync() method.

The existsSync() method asynchronously checks for the existence of the given directory. Here is an example:

const fs = require('fs')

// directory to check if exists
const dir = './uploads'

// check if directory exists
if (fs.existsSync(dir)) {
  console.log('Directory exists!')
} else {
  console.log('Directory not found.')
}

The existsSync() method returns true if the path exists, false otherwise.

If you prefer to use an asynchronous check, use the fs.access() method instead. This method takes a path as input and tests the user's permissions.

Let us look at the below example that uses fs.access() to check if the given directory exists:

const fs = require('fs')

// directory to check if exists
const dir = './uploads'

// check if directory exists
fs.access(dir, err => {
  console.log(`Directory ${err ? 'does not exist' : 'exists'}`)
})

Read this guide to learn more about reading and writing files in a Node.js application.

✌️ Like this article? Follow me on Twitter and LinkedIn. You can also subscribe to RSS Feed.

You might also like...

Digital Ocean

The simplest cloud platform for developers & teams. Start with a $200 free credit.

Buy me a coffee ☕

If you enjoy reading my articles and want to help me out paying bills, please consider buying me a coffee ($5) or two ($10). I will be highly grateful to you ✌️

Enter the number of coffees below:

✨ Learn to build modern web applications using JavaScript and Spring Boot

I started this blog as a place to share everything I have learned in the last decade. I write about modern JavaScript, Node.js, Spring Boot, core Java, RESTful APIs, and all things web development.

The newsletter is sent every week and includes early access to clear, concise, and easy-to-follow tutorials, and other stuff I think you'd enjoy! No spam ever, unsubscribe at any time.