NodeJS path module is a core built-in module. It provides functionalities for accessing and interacting with files. It provides users a way of working with file paths and directories.
Since it is a core module, you do not need to install it. However, to include the path module in your application you must ‘require’ it.
Importing NodeJS Path Module
We will be using this variable throughout this documentation to keep our code compact.
NodeJS Path Properties & Methods
The Node.js path module comes with multiple properties and modules to let developers easily perform tasks. Please note that the arguments surrounded by [ ] (two square brackets) mean they are optional. You may pass them depending upon your requirement.
1. basename(path, [ext])
Returns the last part of a file path. A second parameter will hold the file extension.
path.basename('/random/random.txt') //random.txt
path.basename('/random/random.txt', '.txt') //random
2. delimiter
Returns the delimiter for the path. Windows uses the ‘;’ (semicolon) delimiter and Linux and MacOS use the ‘:’ (colon) delimiter.
3. dirname(path)
Returns the directories of a path.
path.dirname('/random/something/file.txt') // /random/something
4. extname(path)
Returns the file extension of a path.
path.extname('/random/test/file.txt') // '.txt'
5. format(pathObject)
Returns path string from a path object. It is the opposite of path.parse(). It accepts keys or properties such as:
As a rule of thumb, the root key is ignored in case dir is present. Similarly, ext and name keys are ignored if the base is provided.
path.format({ dir: '/Users/Cassandra', base: 'file.txt' }) // '/Users/Cassandra/file.txt'
path.format({ root: '/Users/Cassandra', name: 'file', ext: 'txt' }) // '/Users/Cassandra/file.txt'
// WINDOWS
path.format({ dir: 'C:\\Users\\Cassandra', base: 'file.txt' }) // 'C:\\Users\\Cassandra\\file.txt'
6. isAbsolute(path)
Checks if a file is an absolute path or not. Returns true if it is, otherwise, false.
path.isAbsolute('./random/test) // false
7. join([…paths])
Joins multiple paths into one.
path.join('/', 'Users', name, 'test.txt') //'/Users/Cassandra/test.txt'
8. normalize(path)
Tries to estimate the actual path when relative specifiers like ‘.’ or ‘..’, double slashes are present.
9. parse(path)
Formats the path string into a path object with the properties that it comprises:
- root: the root of the path
- dir: the directory path starting from the root
- base: the file name and extension
- name: the file name
- ext: the file extension of the path
We are required to pass the path string:
The result:
root: '/',
dir: '/Users',
base: 'list.txt',
ext: '.txt',
name: 'list'
}
10. posix
Returns an object that contains POSIX-specific properties and methods. This property enables users to access POSIX-specific implementations of the path methods.
11. relative(from, to)
Returns a relative path from the first path to the second, based on the current working directory.
path.relative('/Users/Cassandra ', '/Users/Cassandra/something/test.txt') //'something/test.txt'
12. resolve([…paths])
Returns an absolute path estimate of a relative path(s).
13. sep
Returns the platform-specific segment separator of the path.
- ‘\’ on Windows
- ‘/’ on POSIX
14. win32
Returns an object that contains Windows-specific properties and methods. This property enables users to access Windows-specific implementations of the path methods.
Conclusion
All in all, the Nodejs path module helps developers handle and manipulate file paths. Most of the path methods and string manipulations.
You might as well want to read: How to Check if a File exists in Node.js
References: Node.js path API docs