最近在学习用Node.js做一个简单的静态资源服务器,dirname和filename和process.cwd()简直让我混乱,- -!需要做一篇笔记!
简单说一下这几个路径的意思:
dirname: 获得当前执行文件所在目录的完整目录名 filename: 获得当前执行文件的带有完整绝对路径的文件名
process.cwd():获得当前执行node命令时候的文件夹目录名
目录结构:
1 | syntax/ |
在 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文件有的属性,区别就很明显了