最近开始使用快递我遇到了以下问题:
我的路由的整个逻辑在单独的文件中定义,然后通过require(route_name)包含这些文件。相应的get / post匹配如下:
app.get('/', routes.home) etc.
上面的行暗示routes.home是一个用参数req,res& amp;下。
我有一堆实用程序函数存储在utils对象中,我希望每个路径都能够访问。到现在为止,我一直在解决这个问题:
var utils = ...
app.get('/', function (req, res, next) {
routes.home(req, res, next, utils);
});
有没有办法告诉express它应该将utils对象作为参数传递给每个路由,或者通常是我问题的更好解决方案?
答案 0 :(得分:2)
我同意JohnnyHK的观点。还有为什么你需要两次传递res和req?为什么不在您的应用文件中执行此操作:
app.get('/', routes.home);
然后在你需要的文件中这样:
var utils = require('utils')
exports.home = function(req, res){
//code
}
答案 1 :(得分:0)
感谢所有答案。通过在我想要的utils模块的路由上调用“init(utils)”函数,我找到了解决问题的方法。