我使用Node.js以及快速会话和 我收到了包含用户信息的会话数据
req.session.user
现在当用户更新信息时,我将会话设置为新数据,然后重新加载
req.session.reload(function(err) {
req.session.user = user;
});
它应该可以工作,但req.session.user仍然显示旧信息,为什么? :(
非常感谢提前
答案 0 :(得分:8)
您在保存更改之前正在重新加载。保存通常在请求结束时自动发生。 session.js中有一个demonstrates that behaviour。
的测试使用req.session.reload()
还原处理请求时当前所做的更改...
req.session.example = 'set on set_reload'
req.session.reload( function (err) {
res.render('index', { title: req.session.example });
});
// next http get request
// req.session.example == value before the call above
考虑使用像这样的会议
req.session.example = 'set on set';
res.render('index', { title: req.session.example });
// next http get
// req.session.example == 'set on set'
如果您有使用req.session.reload()
的真正原因,那么此类用法将为您提供所需的行为
req.session.example = 'set on set_save_reload';
req.session.save( function(err) {
req.session.reload( function (err) {
res.render('index', { title: req.session.example });
});
});
// next http get
// req.session.example == 'set on set_save_reload'