Javascript NodeJs/Express中未定义请求的路由

Javascript NodeJs/Express中未定义请求的路由,javascript,node.js,express,Javascript,Node.js,Express,我想检查一个用户是否被授权。如果不是,则要呈现的模板应该是我的登录视图。在我的app.js中,我需要我的router.js require('./server/router')(app); 我的路由器文件处理不同的路由 module.exports = function(app){ app.use(function(req, res, next) { if(req.route != '/login'){ // the url is not the login page

我想检查一个用户是否被授权。如果不是,则要呈现的模板应该是我的登录视图。在我的
app.js
中,我需要我的
router.js

require('./server/router')(app);
我的路由器文件处理不同的路由

module.exports = function(app){

    app.use(function(req, res, next) {
      if(req.route != '/login'){ // the url is not the login page
        var session = req.session;
        if (session.user == null){ // the user is not authorized
          res.render('login', {
            showHeader: false
          });
        } else { // check the next route
          next();
        }
      } else { // check the next route
        next();
      }
    });

    app.use('/route1', require('./routes/route1'));
    app.use('/route2', require('./routes/route2'));
    app.use('/route3', require('./routes/route3'));

    app.use(function(req, res, next) { // no valid route was found
      res.render('notFound', {
        showHeader: false
      });
    });
};
我的if语句
if(req.route!='/login')
始终为真,因为
req.route
始终返回
undefined

这里出了什么问题或遗漏了什么?

  • 您可以尝试以下方法来获取uri段
  • 假设您有类似url的url

    请求baseUrl

    将获得“/login”

  • 如果url是

    原始请求

    将获得“/admin/login”

    请求路径


将获得“/login”

您在哪里定义了应用程序?从ref中,我看不到req对象的任何路由属性可能您想要
req.url
?我想您应该使用
req.url
如果您查看,您将看到
req.route
是一个具有一组属性的对象,而不是字符串。还有一个
req.route
。它是一个具有属性的对象,而不是一个简单的路径。