[英]requested route undefined in NodeJs / Express
I want to check if a user is authorized. 我想检查用户是否被授权。 If not the template to render should be my login view. 如果不是,则要呈现的模板应该是我的登录视图。 In my app.js
I require my router.js
在我的app.js
我需要我的router.js
require('./server/router')(app);
and my router file handles the different routes. 我的路由器文件处理了不同的路由。
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
});
});
};
My if statement if(req.route != '/login')
is always true, because req.route
always returns undefined
. 我的if语句if(req.route != '/login')
始终为true,因为req.route
始终返回undefined
。
What is wrong or missing here? 这里有什么问题或遗漏?
let suppose you have url like http://localhost/example/login 假设您的网址为http:// localhost / example / login
req.baseUrl req.baseUrl
will get '/login' 会得到'/ login'
and if url is like http://localhost/example/admin/login 以及url是否类似于http:// localhost / example / admin / login
req.originalUrl req.originalUrl
will get '/admin/login' 将获得'/ admin / login'
req.path req.path
will get '/login' 会得到'/ login'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.