node中的__dirname
先说结论:__dirname指的是当前文件所在文件夹的绝对路径。
测试路径如下:
即 根目录/dir0.js
根目录/path1/dir1.js
根目录/paht1/path2/dir2.js
每个dir*.js文件里的代码都只有一行(*号代表数字,下同):
console.log('dir*: '+__dirname);
一. 在根目录下执行上述3个js文件
1.执行node dir0.js
localhost:dirname Yuki$ node dir0.js dir0: /Users/yuki/FE/example/dirname
2.执行node dir1.js
localhost:dirname Yuki$ node path1/dir1.js dir1: /Users/yuki/FE/example/dirname/path1
3.执行node dir2.js
localhost:dirname Yuki$ node path1/path2/dir2.js dir2: /Users/yuki/FE/example/dirname/path1/path2
总结:在根目录下执行不同目录下的3个文件,__dirname地址分别为3个文件所在文件夹的绝对路径。
二.在当前文件所在文件夹下执行js文件
1.执行node dir0.js
与上面一致。
2.执行node dir1.js
localhost:dirname Yuki$ cd path1 localhost:path1 Yuki$ node dir1.js dir1: /Users/yuki/FE/example/dirname/path1
3.执行node
localhost:path1 Yuki$ cd path2 localhost:path2 Yuki$ node dir2.js dir2: /Users/yuki/FE/example/dirname/path1/path2
总结:在当前文件所在文件夹下执行js文件,__dirname为当前文件所在文件夹绝对路径。
所以:综上所述,
__dirname指的是当前文件所在文件夹的绝对路径。