1

最近开始使用 express 后,我偶然发现了以下问题:

我的路由的整个逻辑是在单独的文件中定义的,然后通过 require(route_name) 包含这些文件。各自的 get / post 匹配如下:

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

上面这行暗示 routes.home 是一个使用参数 req、res 和 next 调用的函数。

我有一堆实用程序函数存储在 utils 对象中,我希望每条路由都能够访问它们。到目前为止,我一直在解决以下问题:

var utils = ...

app.get('/', function (req, res, next) {
  routes.home(req, res, next, utils);
});

有没有办法告诉 express 它应该将 utils 对象作为参数传递给每条路由,或者通常是我的问题的更好解决方案?

4

2 回答 2

2

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

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

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

var utils = require('utils')
exports.home = function(req, res){
    //code
}
于 2012-07-18T12:54:19.670 回答
0

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

于 2012-07-20T09:51:51.740 回答