javascript - Scope of dependencies when exporting a module in Node.js - Stack Overflow

When exporting a module that has another dependency, is it best to include that dependency within the m

When exporting a module that has another dependency, is it best to include that dependency within the module export function or outside of it? I usually see the latter, but it seems like it would be best to keep it in the local scope.

For example:

var foo = require('foo');

module.exports = function(d) {
    return foo(d)/2;
}

vs.

module.exports = function(d) {
    var foo = require('foo');

    return foo(d)/2;
}

When exporting a module that has another dependency, is it best to include that dependency within the module export function or outside of it? I usually see the latter, but it seems like it would be best to keep it in the local scope.

For example:

var foo = require('foo');

module.exports = function(d) {
    return foo(d)/2;
}

vs.

module.exports = function(d) {
    var foo = require('foo');

    return foo(d)/2;
}
Share Improve this question asked Nov 19, 2014 at 4:32 jczaplewjczaplew 1,7511 gold badge18 silver badges22 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 7

Only things exposed on module.exports and global can be accessed from other modules in node. Unlike in the browser, var creates a local reference. To quote from 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.

The difference between the two versions is therefore minimal - the first incurs a lookup in the local scope, while the other hits require.cache every time the function is invoked. From what I have seen of node code, the former (var someVar = require('something');) seems to be preferred.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745636395a4637419.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信