我想检查用户是否获得授权。如果不是,要呈现的模板应该是我的登录 View 。在我的 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')
始终为 true,因为 req.route
始终返回 undefined
.
这里有什么问题或缺失吗?
最佳答案
- 您可以尝试以下方法来获取uri段。
假设您有类似 http://localhost/example/login 的网址
req.baseUrl
将得到“/login”
如果 url 类似于 http://localhost/example/admin/login
req.originalUrl
将获得“/admin/login”
- 和
req.path
将得到“/login”
关于javascript - NodeJs/Express 中未定义请求的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48182330/