设置模块导出为变量或不变量以及是否为函数

时间:2015-11-27 22:21:55

标签: node.js

将module.exports设置为var与将其公开为plain module.exports有什么意义?这里有两种方法可以将它设置为变量,然后将其设置为普通的旧模块.exports。我试图以各种方式理解用例,并且如果第一个例子在我上一个例子中已经做过那种事情时将它设置为一个对象是有意义的。

var board = module.exports = {
     doSomething: doSomething()
};

board.initialize = function(){
...
}
doSomethingElse = function(){
}

var board = module.exports = function(){
    initialize();
}

function initialize(){
...
}
board.doSomethingElse(){

}

module.exports = {
      doSomething: doSomething()
};

function doSomething(){
...
};

似乎有很多方法可以做同样的事情,但试图弄清楚好的模式和时间。

1 个答案:

答案 0 :(得分:0)

第一种方式和第二种方式之间的区别在于,第一种方式和第二种方式之间的区别在于,在第一种方式和第二种方式中,您要导出一个对象。如果我需要为我正在使用的任何东西注入一些依赖,我通常会将其导出为函数。

至于是否将module.exports分配给变量,实现它与不执行它之间没有实际区别。我通常不喜欢将它保留在我的模块底部,以突出显示正在导出的内容,但您可以这样做。重要的是在整个应用程序中以相同的方式执行它。