expressjs条件重定向
expressjs conditional redirect
我正在尝试编写用于身份验证的中间件。如果用户没有登录,我希望这个if语句将用户重定向到'/'
。如果他们登录了,我不希望将他们重定向到'/news'。
/*Simplified for this example*/
if(rs.authenticated === true) {
next();
} else {
res.redirect('/');
}
有没有一种方法可以在这些if语句中做到这一点?还是我必须写一个新方法?我已经尝试了几种if语句的方法,但我只得到重定向循环。
标准模式适用于所有需要登录用户使用中间件的页面,该中间件验证登录用户,并在未登录时重定向到/
。
function loggedIn(req, res, next) {
if(req.authenticated === true) {
next();
} else {
res.redirect('/');
}
}
app.get('/news', loggedIn, newsRoute);
app.get('/', homeRoute);
你的问题是,当你真的只想将中间件用于受保护的路由时,你正在为所有路由使用中间件,这就是你的重定向循环发生的地方。如果您想将登录用户发送到"/news"而不是"/",您可以只呈现正确的模板,也可以在其中进行条件重定向。
function homeRoute(req, res) {
if (req.authenticated) {
return res.redirect('/news');
}
res.render('home');
}
您想要引入一个小型中间件来检查用户是否登录。您可以在路由处理程序级别上设置它。
请参阅SO的答案:
javascript node.js next()
Express/Connect中间件是如何工作的?
参数";下一个";用于Express?
相关文章:
- 通过javascript重定向html传递php变量
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- Ember.js:如果控制器中满足某些条件,则在路由器中重定向
- 如何有条件地将引用人重定向到不同的网页
- 条件缓存页面重定向
- 如果#wrapper隐藏,则需要此脚本重定向页面的条件
- 条件Javascript重定向已中断
- 基于GeoIP的Javascript条件重定向的使用和效果
- expressjs条件重定向
- 如果 javascript 条件为 true 则重定向不起作用
- 如果这个人不符合条件,我如何使我的JavaScript提示重定向到另一个页面?
- 如果javascript中的条件为真,我想重定向到另一个页面
- 条件Javascript重定向与后退按钮检查器
- 条件满足时的Javascript重定向
- PHP条件- Javascript重定向
- 如何使JavaScript或PHP有条件重定向
- 在1秒内重定向setinterval或停止setinterval的条件
- 条件重定向URL java
- 使用 javascript 根据条件表单字段选择重定向感谢消息
- jQuery validate插件:重定向用户,如果任何特定条件无效