请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

session 问题

登录之后username的值是给了req.session ,并没有给常量SESSION_DATA,login-test为什么可以获取到SESSION_DATA[userid]的内容呢

在登陆的时候是req.session 获取了username,在走验证登录信息接口的时候req.session还是从常量SESSION_DATA来的,但是常量一直没有获取到username的信息啊
图片描述图片描述

正在回答

2回答

代码中 SESSION_DATA[userid] = {} ,这已经对 SESSION_DATA 进行赋值了呀,只不过每次赋值的是一个 {} 而已。你可以每次请求时都打印一下 SESSION_DATA 看看是否有值。

另外,有一个细节问题我看其他同学有忽略过 —— req.session 存储的是当前用户的 session ,而 SESSION_DATA 存储的是所有用户的 session —— 这一点很重要。

2 回复 有任何疑惑可以回复我~
  • 提问者 zpaaa #1
    我还是不太理解req.session的值是怎么写回到那个常量里面的。。。
    回复 有任何疑惑可以回复我~ 2019-03-27 20:07:14
  • 双越 回复 提问者 zpaaa #2
    SESSION_DATA[userid] = {} 然后 req.session = SESSION_DATA[userid] 。这样,SESSION_DATA[userid] 和 req.session 两个变量的指针就指向了同一个对象,因此修改 req.session 的值,也会同步修改 SESSION_DATA[userid] 的值。
    JS 引用类型的基础知识,例如 var a = {}; b = a ; b.name = 'xxx'; a.name 是多少?
    回复 有任何疑惑可以回复我~ 2019-03-27 21:57:17
  • 提问者 zpaaa 回复 双越 #3
    谢谢,明白了!
    回复 有任何疑惑可以回复我~ 2019-03-28 10:38:24
双越 2019-03-27 14:03:03

把核心代码贴出来吧,让其他同学看到问题也能看明白。

0 回复 有任何疑惑可以回复我~
  • 提问者 zpaaa #1
    我贴了具体代码了,麻烦您能讲解一下
    回复 有任何疑惑可以回复我~ 2019-03-27 17:01:15
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信