Translate: 我有一个项目(纯前端Web应用),我使用Node.js路由从后端提供HTML文件:
router.get("/", (req, res) => {
res.sendFile(views_dir + "index.html");
});
router.get("/login", (req, res) => {
res.sendFile(views_dir + "login.html");
});
并将JS文件作为静态文件进行服务 app.use(express.static(path.join(__dirname, '/frontend'))); 其中/frontend文件夹包含所有前端文件(包括HTML文件)。
现在,我有一个名为model.js的文件(在frontend文件夹中),我正在尝试实现一个单例模式,用于保存所有页面共享的数据(例如用户当前是否已登录):
const Model = (function () {
let instance;
function init() {
let isLogged = false;
return {
getIsLogged: function () {
return isLogged;
},
setIsLogged: function (l) {
isLogged = l;
}
}
}
return {
getInstance: function () {
if (! instance) {
instance = init();
}
return instance;
}
}
})();
但是当用户被重定向时,似乎model.js会再次从后端导入,覆盖前一个页面对模型的所有更改。(例如,当用户登录时,我们将模型中的isLogged变量更改为true,并重定向到'/',模型将被刷新和覆盖)
是否有办法只使用JavaScript实现这样的需求?
我认为问题出在res.sendFile(views_dir + "index.html");上,它会将应用程序刷新到新的状态,并且不保存js文件的先前状态,有没有办法避免这种情况?只请求一次js文件?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号