在多个文件中需要相同的模块

我在我的项目中使用Underscore.js。 几乎所有的文件都有这一行代码: var _ = require('underscore')require函数是同步的,所以每次使用时都会加载同一个文件。 这是正确的吗? 这不会影响性能吗?

相反,可以在app.js文件中定义一个全局variables吗?

 _ = require('underscore') 

我读过,你不应该使用全局variables,但这似乎是一个有效的用例。

       

网上收集的解决方案 "在多个文件中需要相同的模块"

从node.js文档:

模块在第一次加载后被caching。 这意味着(除其他外)每个调用require('foo')将返回完全相同的对象,如果它将parsing为相同的文件。

多次调用require('foo')可能不会导致模块代码被多次执行。 这是一个重要的function。 有了它,“部分完成”的对象可以被返回,从而允许传递依赖被加载,即使它们会导致循环。

所以需要underscore多次调用不会影响性能,因为它将加载模块的caching版本。
来源 : https : //nodejs.org/api/modules.html