如何使用Express的req对象获取请求路径

242

我正在使用express + node.js,有一个req对象,在浏览器中发出的请求是/account,但当我记录req.path时,我得到的是'/'而不是'/account'。

  //auth required or redirect
  app.use('/account', function(req, res, next) {
    console.log(req.path);
    if ( !req.session.user ) {
      res.redirect('/login?ref='+req.path);
    } else {
      next();
    }
  });

req.path是/,但应该是/account吗?


4
类型错误:无法读取未定义的属性“path”。 - chovy
req.route.path是正确的,并且在这里有文档记录(http://expressjs.com/api.html#req.route)。您使用的是哪个版本的Express? - zemirco
我遇到了同样的问题。req.route未定义。我正在使用express 3.4.4。什么原因会导致路由未定义? - davidpfahler
@vinayr req.route.path仍然给出/create而不是/quizzes/create,这是整个URL。 - Sandip Subedi
它只在中间件处理程序内未定义。在路由处理程序内,肯定有一条路线。 - Omar Dulaimi
显示剩余3条评论
11个回答

0

对于那些从req.route.path得到undefined的人,这是正确的。

在路由处理程序内部,有一个路由。 在中间件处理程序内部,没有路由。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接