我是否应该在每个路由模块文件中重复所有这些要求?

我正在构build一个更大的Web应用程序,现在已经开始意识到在自己的文件中使用模块化路线。 但是,当我这样做的时候,我注意到我必须重申许多要求…在我开始搬出自己的文件的路线之前,我有我的主要应用程序中约20个必需的模块,处理从数据库到电子邮件的一切…

许多这些模块用于大多数路由…这意味着我必须在每个路由模块文件中重复15-20个需求。

问:这似乎是一个重复的代码很多,但也许这是正确的方式来做到这一点?

至less官方NPM模块似乎以这种方式工作。

你可以写一个模块(让我们说, common.js ),这将require你所有的要求,并返回一个单一的对象:

 module.exports = { http: require('http'), request: require('request'), async: require('async'), someModule: require('./someModule') }; 

那么你所要做的只是require一个common模块:

 var common = require('./common'); common.request.get(...); common.async.parallel(...); 

唯一的不便是你现在必须写common. 当你想访问这些模块。

你也可以使用全局variables 。 实际上使用全局variables是一个不好的习惯,强烈build议您不要使用它们:
为什么全局variables被认为是不好的做法 (的node.js)
为什么globals不好?