我正在寻找一种优雅的解决方案,将数据从中间件功能发送到后续路由。
我想我可以为req添加一个属性,但它感觉不对。还有更好的方法吗?
app.post('/', filter);
var filter = function (req, res, next) {
req.something = {};
next();
};
答案 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对象不重要)