如果我在`global`上定义模块,`module.exports`有什么好处?

时间:2016-06-02 18:55:36

标签: javascript node.js

我最近一直在学习节点导入系统。

我知道如何使用Node module.exports

// file_1
var MyClass = module.exports = {}
// file_2
var MyClass = require("./file_1.js")

以及我如何使用全局

// file_1
global.MyClass = {foo: "bar"}
// file_2
require("./file_1.js")
console.log(MyClass.foo)

我个人更喜欢全局方法,但我也被告知,在我的文件中导出类也是一种很好的做法。

问题是,我的主文件现在没有任何类别。所有类都在它需要的文件中,所有应用程序的组件都出现在global对象上。

我不确定在我的主文件上使用module.exports是否有好处。我想一个简单的方法就是说我的文件导出某些东西就是简单地导出整个global对象。但是,由于这个对象可能有点大,我担心我不确定有用的功能会导致性能下降。

如果我在module.exports对象上定义模块,是否有必要使用global

1 个答案:

答案 0 :(得分:1)

  

我个人更喜欢全局方法,但有人告诉我,在我的文件中导出一个类是个好习惯。

我确信你被告知使用全局变量是不良做法,你应该通过module.exports 而不是来导出你的课程。不另外。

  

我不确定在我的主文件中使用module.exports会有什么好处。

不,您的主文件(通常作为脚本执行,而不是模块执行)不需要导出任何。把它留下吧。使用局部变量,或者必要时创建一些全局变量。