访问路线,发送错误警报并重定向

时间:2018-09-06 21:40:10

标签: javascript node.js express middleware

我正在使用nodejs,expressjs,javascript ...

当有人尝试访问未登录但没有访问权限的一条路由但我无法发送警报,重定向以及响应时,我可以使用此“中间件”功能,我该怎么办?

function isLoggedIn (req, res, next) 
{

    if (req.isAuthenticated()) {
        return next();
    }

    res.send('<script>alert("You need to be authenticated to access this page")</script>'); 
    res.redirect('/');

}

2 个答案:

答案 0 :(得分:3)

@Michael是对的。

您应该将服务器逻辑与客户端分离。

  1. 服务器应知道您是否已登录
  2. 服务器不应该知道您如何告诉用户。

如果未通过身份验证,则Middl应该简单地发送401状态。然后客户端检查它是200(确定)还是401(未授权),并根据状态显示用户内容

class TreeNode {
    …
    TreeNode* left = nullptr;
    TreeNode* right = nullptr;
    …
};

答案 1 :(得分:1)

我不建议这样做(在服务器端响应中发送html) 代替: 发送带有变量的json,该变量会在客户端告诉您发出警报:

res.json({ success: false });

然后在客户端,如果!成功并重定向,您可以警告消息。