0

下面的代码演示了尝试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();
});
4

1 回答 1

2

我认为您不能req.params在中间件函数中使用它,因为它绑定到特定的路由。您可以使用req.query,但是您必须以不同的方式编写路线,例如/user?hash=12345abc. 不确定将值从app.paramto传递给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
于 2013-01-14T19:08:38.540 回答