将对象从中间件传递到快速路径

时间:2015-02-23 12:24:44

标签: node.js express

我正在寻找一种优雅的解决方案,将数据从中间件功能发送到后续路由。

我想我可以为req添加一个属性,但它感觉不对。还有更好的方法吗?

app.post('/', filter);

var filter = function (req, res, next) {
    req.something = {};
    next();
};

1 个答案:

答案 0 :(得分:3)

虽然您要求将数据附加到req,但您可以使用res将数据附加到res.locals对象:

app.post('/', filter);

var filter = function (req, res, next) {
    res.locals.myVar = 'myVal'; // data attched to response
  res.locals.myOtherVar = 'myOtherVal';
    next();
};

此数据仅在整个请求生命周期内可用。即对于那个单一的请求(所以我认为如果你在这种情况下将数据附加到res对象不重要