快递小吃店问题

Express snackbar issue

尝试制作我自己的小吃店,到目前为止,效果很好(有点总是这样)唯一的问题是,我注意到使用全局或本地设置一个可以在客户端访问的变量,是可能的如果您刷新网站的时间与某人 fx 的时间完全相同,请抓住。登录。所以我决定尝试使用 req.session 作为我使用它来存储用户登录。

我的想法是简单地这样做:

req.session.snackbarMessage = "You're logged in!";

这个想法在我需要删除 snackbarMessage 之前一直有效。 我确实尝试过:

delete req.session.snackbarMessage;

只是行不通。所以我想问题可能出在我删除的地方?

这是我的个人资料路线的片段,也是我想在用户登录后删除 snackbarMessage 的地方:

module.exports = function (app) {

    /* GET profile page unless a session does not exist */
    app.get('/profile', function(req, res) {
        if (req.session.userInfo == undefined) {
            res.redirect('/login');
        } else {
            res.render('pages/profile', {
                user: req.session.userInfo,
                snackbarMessage: req.session.snackbarMessage
            });
            /* Clearing the message to avoid repeating */
            delete req.session.snackbarMessage;
        }
    });
};

一旦用户点击登录按钮,用户就会被重定向到/profile,这是上面看到的路由,同样在我重定向用户之前,我声明了req.session.snackbarMessage,它是:

req.session.snackbarMessage = "You're logged in!";

我真的希望有人能帮助我解决我的问题,或者至少指引我正确的方向。

好吧,经过几个小时的推测,我想我也可以尝试渲染一个 delete 参数。

这是我解决问题的方法:

module.exports = function (app) {

    /* GET profile page unless a session does not exist */
    app.get('/profile', function(req, res) {
        if (req.session.userInfo == undefined) {
            res.redirect('/login');
        } else {
            res.render('pages/profile', {
                user: req.session.userInfo,
                snackbarMessage: req.session.snackbarMessage,
                DeleteSnackbarMessage: delete req.session.snackbarMessage
            });
        }
    });
};

还不太确定这是否是一个可靠的修复程序,因为我还没有时间对其进行测试,但我确信它最终是一个很好的解决方法。