When working with Node, it is often necessary to determine the file path of the current script. There are several ways to achieve this, each with its own advantages and use cases. In this article, we will explore the different methods for getting the current file path in Node.
__dirname global variable is the most straightforward way to get the current file path in Node. It is a built-in variable that is available in all modules and always contains the absolute path of the directory that the current module is in. The
__dirname variable does not include the file name, only the path of the directory.
console.log(__dirname); // Outputs a string of the current file path
__filename global variable is similar to
__dirname, but it contains the absolute path of the current module, including the file name.
process.cwd() method returns the current working directory of the Node process. This method can be useful if you want to know the current directory that the Node process was started in, rather than the current directory of the module.
const process = require('process'); console.log(process.cwd()); // Outputs a string of the current file path
path module is a built-in Node.js module that provides utilities for working with file and directory paths. The
path.dirname() method can be used to get the directory path of a file.
const path = require('path'); console.log(path.dirname(__filename));
path.resolve() method can be used to get the absolute path of a file or directory. This method can be useful if you want to know the absolute path of a file or directory, regardless of the current working directory.
const path = require('path'); console.log(path.resolve(__dirname, 'file.js'));
In conclusion, there are several ways to get the current file path in Node. Depending on your use case, you may choose to use one method over another. The
__filename global variables are the most straightforward and easiest to use, while the
path module provides more advanced features for working with file paths. The
process.cwd() method can be useful if you need to know the current working directory of the Node process, rather than the current module.