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
。它是一个具有属性的对象,而不是一个简单的路径。