我是Express和Node的新手(我来自前端开发世界),所以这可能是一个非常愚蠢的问题。
目前,我正在开发一个使用express-session
,sessionstore
+ memcache
和cookie-parser
来管理会话的Express JS应用。
我有一个特定的用例,其中我有一个会话变量(age
),通过中间件传递给每个视图,团队中创建应用程序的人写了:
response.locals.age = request.session.age
request.session.age
是从登录期间提取的UserAccount
模型中填充的。
现在,在请求到达控制器之前调用此中间件,所以当我在我的视图中看到它时,response.locals.age
已经设置,它在模板中按原样显示。
我的问题是:age
变量可以通过Admin界面单独重置。但由于会话仅在登录时设置,因此更改不会反映,直到我退出并再次登录。我通过再次获取age
模型获得了新的UserAccount
值,但我不知道如何使用新值刷新会话而无需注销并再次登录。我试过这样做:
req.session.age = res.locals.age = < UserAccountResponse >.age;
但这似乎不起作用。什么是强制刷新的理想方式? Express中的这个场景中的会话以及提到的中间件?提前谢谢!