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

Javascript 在多个文件中需要相同的模块,javascript,node.js,express,Javascript,Node.js,Express,我正在我的项目中使用下划线.js。几乎所有文件都有这一行代码:var\ux=require('下划线')。 require函数是同步的,因此每次使用时都会加载相同的文件。这样做对吗?这不会影响性能吗 相反,可以在app.js文件中定义一个全局变量吗 _ = require('underscore') 我已经读到不应该使用全局变量,但这似乎是一个有效的用例。来自node.js文档: 模块在第一次加载后被缓存。这意味着 (除其他事项外)每个对require(“foo”)的调用都将得到 返回的对象完

我正在我的项目中使用下划线.js。几乎所有文件都有这一行代码:
var\ux=require('下划线')
require
函数是同步的,因此每次使用时都会加载相同的文件。这样做对吗?这不会影响性能吗

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

_ = require('underscore')

我已经读到不应该使用全局变量,但这似乎是一个有效的用例。

来自node.js文档:

模块在第一次加载后被缓存。这意味着 (除其他事项外)每个对require(“foo”)的调用都将得到 返回的对象完全相同,如果它将解析为相同的 文件

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

因此,多次调用required
下划线将不会影响性能,因为它将加载模块的缓存版本。

来源

但假设模块有内部变量,可以修改并返回给调用者。所有需要它的模块都会获得相同的内部状态吗?