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

最近在学习用Node.js做一个简单的静态资源服务器,dirname和filename和process.cwd()简直让我混乱,- -!需要做一篇笔记!
简单说一下这几个路径的意思:

dirname: 获得当前执行文件所在目录的完整目录名 filename: 获得当前执行文件的带有完整绝对路径的文件名
process.cwd():获得当前执行node命令时候的文件夹目录名

目录结构:

1
2
3
4
5
6
7
8
syntax/
-nodejs/
-1.findLargest.js
-2.path.js
-3.fs.js
-regs
-regx.js
-test.txt

在 path.js 里面我们写这些代码,看看输出是什么:

const path = require('path')
console.log('__dirname:', __dirname)
console.log('__filename:', __filename)
console.log('process.cwd():', process.cwd())

在当前目录下也就是nodejs目录运行 node path.js,我们看看输出结果:

__dirname:     /Users/Desktop/nodejs/demo/ES6-lottery/syntax/nodejs
__filename:    /Users/Desktop/nodejs/demo/ES6-lottery/syntax/nodejs/2.path.js
process.cwd(): /Users/Desktop/nodejs/demo/ES6-lottery/syntax/nodejs

然后在 项目根目录ES6-lottery 目录下运行 node syntax/nodejs/2.path.js,我们再来看看输出结果:

__dirname:     /Users/Desktop/nodejs/demo/ES6-lottery/syntax/nodejs
__filename:    /Users/Desktop/nodejs/demo/ES6-lottery/syntax/nodejs/2.path.js
process.cwd(): /Users/Desktop/nodejs/demo/ES6-lottery

==总结:==
dirname: 获得当前执行文件所在目录的完整目录名 filename: 获得当前执行文件的带有完整绝对路径的文件名
process.cwd():获得当前执行node命令时候的文件夹目录名

process.cwd()是程序的执行路径,__filename和_dirname是js文件有的属性,区别就很明显了

------------- 本文结束 感谢您的阅读-------------

本文标题:__dirname和__filename和process.cwd()三者的区别

文章作者:一只白~

发布时间:2019年03月08日 - 17:03

最后更新:2019年03月08日 - 17:03

原始链接:http://yoursite.com/2019/03/08/dirname/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。