导出具有其他依赖关系的模块时,最好是在模块导出函数中还是在模块导出函数之外包含该依赖关系?我通常会看到后者,但似乎最好将它保留在本地范围内.
例如:
var foo = require('foo');
module.exports = function(d) {
return foo(d)/2;
}
与
module.exports = function(d) {
var foo = require('foo');
return foo(d)/2;
}
解决方法:
只有在node.exports和global上公开的内容才能从节点中的其他模块访问.与浏览器不同,var创建本地引用.引用node’s documentation:
In browsers, the top-level scope is the global scope. That means that in browsers if you’re in the global scope var something will define a global variable. In Node this is different. The top-level scope is not the global scope;
var something
inside a Node module will be local to that module.
因此,两个版本之间的差异是最小的 – 第一个在本地范围内进行查找,而在每次调用函数时都会发生另一个hits require.cache
.从我所看到的节点代码,前者(var someVar = require(‘something’);)似乎是首选.
标签:javascript,node-js 来源: https://codeday.me/bug/20190824/1712797.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。