node中__dirname、__filename、process.cwd()、process.chdir()表示的路径

2,993 阅读1分钟

__dirname、__filename、process.cwd()、process.chdir()表示的路径

  • __dirname 表示当前文件所在的目录的绝对路径
  • __filename 表示当前文件的绝对路径
  • module.filename ==== __filename 等价
  • process.cwd() 返回运行当前脚本的工作目录的路径
  • process.chdir() 改变工作目录

例子,文件路径有如下结构:

newapp > demo > hello.js

在hello.js文件中编写如下代码:

console.log(__dirname);
console.log(__filename);
console.log(module.filename===__filename);
console.log(process.cwd());
process.chdir('/Users/jerry')
console.log(process.cwd());

然后定位在newapp目录下,执行命令 node demo/hello.js,输出结果如下:


/Users/jerry/51talk/newapp/demo
/Users/jerry/51talk/newapp/demo/hello.js
true
/Users/jerry/51talk/newapp
/Users/jerry

__filename 变量获取当前模块文件的带有完整绝对路径的文件名;【包含文件名本身的绝对路径】

__dirname 变量获得当前文件所在目录的完整目录名。【不包含文件名本身的绝对路径】

该方法用于获取一个路径中的目录名,使用方式如下:

path.dirname(p);

该方法使用一个参数,参数为一个路径可以是相对路径,绝对路径,可以为一个目录的路径,也可以为一个文件的路径。当参数值为目录路径时,该方法返回该目录的上层目录;当参数值为文件路径时,该方法返回该文件所在的目录。

var dirname = path.dirname("./a/b");
console.log(dirname);      //   .a

参考