我正在尝试使用nodejs实现会话。但是我无法在会话中处理多个请求
示例:
如果user1登录,则加载数据
如果user2登录,用户1的数据将被user2覆盖
因此,在刷新user1页面时,再次加载user2数据。
var session = require('express-session');
app.use(session({
secret: "secterd13",
resave: false,
saveUninitialized: true,
cookie: { secure: true }
}));
//Set the session data in login page.
sessionObj = req.session;
sessionObj.Location = "Location1";
//Get in dashboard.
console.log(sessionObj.Location);
答案 0 :(得分:0)
您在sessionObj = req.session
的位置创建全局变量并在每个用户上重新分配。连接到服务器的最后一个用户将始终覆盖此设置。如果您计划将会话数据传递给模板引擎,则可以使用'res.render('view',{session:req.session})simply and the session variable will be available in your template. Or you can set the session as global using
res.locals.myVariable = req.session {{1你的模板中将提供myVariable`。
答案 1 :(得分:0)
我遇到了同样的问题,我使用req.session
来解决它。
我在每个请求到达服务器时都为其分配了unique_id
。它成功地为我工作。
这是我的解决方案:
var user_count = 0;
/*********** Authentication request ***********/
var handleAuthRequest = function(req, res) {
var unique_id = ++user_count;
/********* setting unique id to each request session *********/
req.session.unique_id = unique_id;
res.redirect("/user/db_op");
}
app.get("/home/get_data", handleAuthRequest);