Node.js File Paths

How to interact with file paths and manipulate them in Node.js

Article Authors
Table of Contents

Every file in the system has a path. On Linux and macOS, a path might look like: /users/joe/file.txt while Windows computers are different, and have a structure such as: C:\users\joe\file.txt

You need to pay attention when using paths in your applications, as this difference must be taken into account.

You include this module in your files using const path = require('path'); and you can start using its methods.

Getting information out of a path

Given a path, you can extract information out of it using those methods:

  • dirname: gets the parent folder of a file
  • basename: gets the filename part
  • extname: gets the file extension

Example

You can get the file name without the extension by specifying a second argument to basename:

Working with paths

You can join two or more parts of a path by using path.join():

You can get the absolute path calculation of a relative path using path.resolve():

In this case Node.js will simply append /joe.txt to the current working directory. If you specify a second parameter folder, resolve will use the first as a base for the second:

If the first parameter starts with a slash, that means it's an absolute path:

path.normalize() is another useful function, that will try and calculate the actual path, when it contains relative specifiers like . or .., or double slashes:

Neither resolve nor normalize will check if the path exists. They just calculate a path based on the information they got.