Node.js:全局声明node_modules,或根据需要在本地声明?

Node_modules依赖关系应该在应用程序代码的开始处全局声明,还是在需要时在本地声明? 我想知道是否有最佳做法。

例如,我使用index.js引导我的应用程序,并在需要时需要脚本。 例如,我的security.js模块可能需要使用node_hash 。 现在,我应该要求在security.js

 var node_hash = require('node_hash') 

或全局要求在index.js所以它是可用的security.js (但也是一切)?

在Node中,并没有真正的“全局需求”的概念。 当您需要将一个模块插入另一个模块时,所需模块在您需要的模块中可用。 如果你想在其他地方使用那个需要的模块,你将需要再次需要它(或以某种方式将返回的对象传递到其他模块中)。

因此,正确的答案是在需要的地方要求他们。 请注意,Node使用了一个requirecaching ,所以所需的模块只被真正的评估一次,并且同一个对象被返回多个相同的文件需求。

[编辑]赋值给一个没有var的variables赋值给global范围(比如它可以通过Node中的global访问)。 你很less想要这样做; 不仅难以确定variables的声明位置,而且还会导致命名空间问题。