node.js 的全局变量的宿主是全局对象global,但是为何不能global.__dirname 这样访问呢?
console.log(__dirname); // g:\Test\nodejs-test\nodejs-test-01
console.log(global._dirname); // undefined
node.js 的全局变量的宿主是全局对象global,但是为何不能global.__dirname 这样访问呢?
console.log(__dirname); // g:\Test\nodejs-test\nodejs-test-01
console.log(global._dirname); // undefined
3 回答2.7k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
2 回答745 阅读✓ 已解决
2 回答1.8k 阅读
2 回答824 阅读✓ 已解决
2 回答1.2k 阅读
node.js的
__dirname
,严格来说不是“全局变量”,而是CommonJS模块里的变量。node.js加载CommonJS模块的时候,会在你的每个JS文件代码外面再包裹一层代码,类似
这时你应该会明白,其实你的代码是跑在一个
function
里的,像requier
函数、__filename
变量其实都是这个function里的变量,并不属于全局对象global
下的属性。可以参考这里
http://fredkschott.com/post/2...