请问老师SESSION_DATA这个值好像没有任何赋值呀?它一直是空的?还是说我哪里理解的有问题呢
来源:7-8 从 session 到 redis
云在258
2019-03-20
如题…
6回答
-
菜鸟junior
2019-03-20
SESSION_DATA在serverHandle函数之外初始化为空对象,当serverHandle函数被调用的时候,SESSION_DATA对象添加新userid属性并保存,在闭包作用下,serverHandle函数没有被回收,就是serverHandle函数内部变量占用内存,SESSION_DATA对象里保存着userid对象。如果node服务器关闭或重启,那么serverHandle函数销毁,内存消除SESSION_DATA对象
如果还是不懂闭包的话要深入作用域与闭包哦
40 -
云在258
提问者
2019-03-20
感谢群里同学的回答:
“SESSION_DATA是一个以userid为key,用户data对象为value的map。赋值给req.session是某个userid对应的用户data,而不是SESSION_DATA
req.session存的是当前访问用户的用户信息,SESSION_DATA存的是所有访问用户的信息”
412019-09-30 -
FunnyCoder24
2023-06-02
这个地方的 req.session 是一个引用,指向了 SESSION_DATA[userId],所以,当 req.session 发生变化的时候,SESSION_DATA[userId] 也会发生变化, SESSION_DATA[userId] = req.session, 也就是说,SESSION_DATA[userId] 和 req.session 指向的是同一个对象
00 -
我不是蜗牛
2021-08-16
也是看了好久才想明白。
req.session = SESSION_DATA[userId]。 表明req.session和SESSION_DATA[userId]引用的同一个对象,所以对req.session赋值就是对SESSION_DATA[userId]赋值。因为SESSION_DATA在app.js中声明的,user.js中读不到,所以只能通过req.session间接对SESSION_DATA[userId]赋值。
00 -
云在258
提问者
2019-03-20
(这个问题还是6-7的,发错位置了)
这个SESSION_DATA最开始初始化为空对象,后来被赋值给req.session
但是一直没有给他一个值?
00 -
双越
2019-03-20
把代码截图,贴出来吧,这样其他同学更能看清楚问题。
012019-03-20
相似问题
回答 2