在我的 node.js 应用程序的每个模块中需要一些相同的包的影响和替代方案?

Impact and alternatives on requiring some of the same packages in every modules of my node.js application?

假设我有一个应用程序如下:

问题:

是的,你应该再 require 一次。节点缓存所需的模块,所以你第二次 require 它实际上并不 运行 那个文件;它只是 returns 缓存的对象。因此内存影响基本上为 0(指向同一对象的额外指针,或多或少)并且执行时间同样可以忽略不计(通过模块名称在对象中查找的成本)。

这意味着两个 require 返回的对象不仅仅是相同的;它们实际上是同一个对象。对一个的任何更改都会影响另一个。正因为如此,您可以在一个地方扩展模块并在任何地方获得这些扩展。