__dirname和__filename和process.cwd()三者的区别

1.process cwd() 方法返回 Node.js 进程当前工作的目录

例:我在F:自己的文件自己在网上学习的知识点 ode学习 ode-APIprocess 这个文件加下面创建了一个test.js在该js文件中写下下面的代码,然后右键 run test.js

const cwd = process.cwd();
console.log(cwd);

输出如下 F:自己的文件自己在网上学习的知识点 ode学习 ode-APIprocess

2.__dirname 是node的一个全局变量,获得当前文件所在目录的完整目录名
还在上面的js文件中输入一下代码
console.log(__dirname)
输出如下 F:自己的文件自己在网上学习的知识点
ode学习
ode-APIprocess

现在一看感觉上面两个方法是一样的,其实不是。node.js进程当前工作的目录有可能不是该文件所在目录的完整目录。例如:我用node webpack ..打包了一个应用程序,
我用这个应用程序可以生产出一套完整的页面架构,在应用程序的配置文件中console.log(cwd)
在完整的这个页面架构中执行启动这个项目的命令,则对应的cwd就是当前项目所在的绝对路径,而不是应用程序的路径

3.__filename 也是node的全局变量 Node.js中,在任何模块文件内部,可以使用__filename变量获取当前模块文件的带有完整绝对路径的文件名

console.log(__filename)
F:自己的文件自己在网上学习的知识点 ode学习 ode-APIprocess est.js







原文地址:https://www.cnblogs.com/qinmengjiao123-123/p/node.html