程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Nodejs express res.redirect 循环大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Nodejs express res.redirect 循环?

开发过程中遇到Nodejs express res.redirect 循环的问题如何解决?下面主要结合日常开发的经验,给出你关于Nodejs express res.redirect 循环的解决方法建议,希望对你解决Nodejs express res.redirect 循环有所启发或帮助;

使用 NodeJs 和 Express 服务器,我试图阻止任何人在未登录的情况下访问我的第二组路由,并且在此过程中,如果会话未检测到会话令牌中的电子邮件,我将陷入重定向循环.我相信它试图检查 /users 端点的 req.session.email 以及导致重定向循环,但是在我认为 /users 端点会避免检查之后使用了会话检查中间件。

如何组织我的代码,以便仅在满足 req.session.email 时才能访问书籍端点,并且当有人试图在未登录的情况下访问它时也不会卡在重定向循环中?

app.use('/users',users)
app.use((req,res,next) => {
  if(!req.session.email){
    res.redirect('/login')
  }
  else{
    next();
  }
})
app.use('/books',books);

解决方法

在这种情况下,app.use 语句的顺序并不重要;如果您只检查 /books 端点,则可以将中间件添加到路由级别。

const yourMiddlewareFunction = (req,res,next) => {
  if(!req.session.email){
    res.redirect('/login')
  }
  else{
    next();
  }
}

app.use('/books',yourMiddlewareFunction,books);
,

如果您只想保护 /books 端点,您可以这样做:

function requireLogin(req,next) {
  if(!req.session.email){
    res.redirect('/login')
  }
  else{
    next();
  }
}


app.use('/books',requireLogin,books);

大佬总结

以上是大佬教程为你收集整理的Nodejs express res.redirect 循环全部内容,希望文章能够帮你解决Nodejs express res.redirect 循环所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。