将其他参数传递给路线(expressjs)

时间:2012-07-18 10:47:29

标签: javascript node.js parameters express

最近开始使用快递我遇到了以下问题:

我的路由的整个逻辑在单独的文件中定义,然后通过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对象作为参数传递给每个路由,或者通常是我问题的更好解决方案?

2 个答案:

答案 0 :(得分:2)

我同意JohnnyHK的观点。还有为什么你需要两次传递res和req?为什么不在您的应用文件中执行此操作:

app.get('/', routes.home);

然后在你需要的文件中这样:

var utils = require('utils')
exports.home = function(req, res){
    //code
}

答案 1 :(得分:0)

感谢所有答案。通过在我想要的utils模块的路由上调用“init(utils)”函数,我找到了解决问题的方法。