express.js - 如果条件不匹配,则通过中间件重定向到另一个URL

时间:2018-04-29 12:50:10

标签: node.js express mean-stack

我有一个管理员门户,我在门户网站中为管理员实施了另一个配置功能。我需要将 / admin / configure 保留在身份验证之外,但其他人应该是。

我说的是关注网址 -

/管理/ * 和 的 /管理/配置

我正在尝试创建一个middleware,当我的网址 / admin / * 而非 / admin / configure

我正在尝试使用以下代码 -

app.use('/admin/*', (req, res, next) => {
    if(req.path == '/admin/configure'){
        next();
    }

    if(req.session.user_id){
        next();
    } else{
        res.redirect('/admin/login');
    }
});

但它会带回错误 -

  

ERR_TOO_MANY_REDIRECTS

您能否以最佳实践方式找出问题。

谢谢!

1 个答案:

答案 0 :(得分:0)

您正在重定向到执行相同/admin/login路由逻辑的/admin/*,从而导致无限重定向。
您可以像/admin/login一样对/admin/configure进行相同的单独检查,也可以更改其路线。