下面的代码演示了如何从中间件中记录req.hash_id
。它以undefined
的形式出现在我面前。无论如何我能让这个工作吗?或者在常规.use中间件中轻松解析“:hash”?
app.param("hash",function(req, res, next, id){
req.hash_id = id;
return next();
});
app.use(function(req, res, next){
console.log(req.hash_id);
return next();
});
答案 0 :(得分:2)
我认为您不能在中间件函数中使用req.params
,因为它绑定到特定路由。你可以使用req.query
,但是你必须以不同的方式编写你的路线,例如/user?hash=12345abc
。不确定是否将值从app.param
传递给app.use
。
如果您的路线有特定的结构,例如/user/:hash
,您可以简单地写
// that part is fine
app.param('hash',function(req, res, next, id){
req.hash_id = id;
return next();
});
app.all('/user/:hash', function(req, res, next) { // app.all instead app.use
console.log(req.hash_id);
next(); // continue to sending an answer or some html
});
// GET /user/steve -> steve