# How do I get the path to the current script with Node.js? – Dev

The best answers to the question “How do I get the path to the current script with Node.js?” in the category Dev.

QUESTION:

How would I get the path to the script in Node.js?

I know there’s process.cwd, but that only refers to the directory where the script was called, not of the script itself. For instance, say I’m in /home/kyle/ and I run the following command:

node /home/kyle/some/dir/file.js


If I call process.cwd(), I get /home/kyle/, not /home/kyle/some/dir/. Is there a way to get that directory?

So basically you can do this:

fs.readFile(path.resolve(__dirname, 'settings.json'), 'UTF-8', callback);


Use resolve() instead of concatenating with “https://stackoverflow.com/” or ‘\’ else you will run into cross-platform issues.

Note: __dirname is the local path of the module or included script. If you are writing a plugin which needs to know the path of the main script it is:

require.main.filename


or, to just get the folder name:

require('path').dirname(require.main.filename)


I found it after looking through the documentation again. What I was looking for were the __filename and __dirname module-level variables.

• __filename is the file name of the current module. This is the resolved absolute path of the current module file. (ex:/home/kyle/some/dir/file.js)
• __dirname is the directory name of the current module. (ex:/home/kyle/some/dir)

This command returns the current directory:

var currentPath = process.cwd();


For example, to use the path to read the file:

var fs = require('fs');
{
if(err)
console.log(err)
else
console.log(data.toString());
});


Use __dirname!!

__dirname


The directory name of the current module. This the same as the path.dirname() of the __filename.

Example: running node example.js from /Users/mjr

console.log(__dirname);
// Prints: /Users/mjr
console.log(path.dirname(__filename));
// Prints: /Users/mjr


https://nodejs.org/api/modules.html#modules_dirname

For ESModules you would want to use:
import.meta.url