我不是服务器端渲染的忠实拥护者,也就是说,我不喜欢使用模板引擎等。我宁愿让客户端控制显示,而服务器只提供静态文件和数据。

我已将我的主页设计为单页应用程序。首次加载时,会向用户显示一个登录表单,其他所有内容都被隐藏。如果他们成功登录,它将隐藏登录名并显示应用程序的其余部分。现在,我已经实现了cookie,因此它们只需要登录一次。问题是,我无法想到让客户在显示登录表单之前就知道已登录的方法。

当客户端请求/时,我这样做:

router.get('/', function (req, res, next) {
        if(req.cookies.token){
            app.locals.userManager.loginUserWithToken(req.cookies.token, req.ip, req.headers['user-agent'])
        }
        res.sendFile(path.join(__dirname + './../public/index.html'));
    });


如何告知浏览器用户已登录并且无需显示登录表单?我可以发送一些预数据和响应吗?我想不是因为我只是发送文件。

最佳答案

您可以在响应中包含第二个cookie,SPA中的代码可以用来决定是否显示登录信息。

关于javascript - Node JS + Express-使用数据提供静态文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53240649/

10-11 22:11
查看更多