请稍等 ...
×

采纳答案成功!

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

关于redis中这段代码的理解不是很清晰?

http://img1.sycdn.imooc.com//szimg/5f38b8c808d28cf615010844.jpg
我是这么理解的,麻烦请给予纠正:先在cookie中判断有没有userId,没有的话就给赋一个随机值,并把这个userId设置到redis中去,此时在redis中就有一个{userId: {}}的东西。接着把useId赋值给req.sessionId,并根据req.sessionId去获取req.sessionId的值,在这里是否可以理解为获取前面提到的userId这个key对应的value?这里的sessionData是否可以理解为userId这个key对应的value值?如果sessionData(即userId对应的值是是空),那么就在redis中的req.session的value值设置为{}空对象,但是接下来的req.session={}和else中的req.session=sessionData我就不理解了,实现登录的原理是把userId和redis中的用户真实信息对应起来对吗?所以req.session={}和req.session=sessionData并不在redis中,这两个赋值代码的目的是什么?

正在回答 回答被采纳积分+3

1回答

双越 2020-08-16 19:44:50

看你写的内容,大体思路是对的。

不过,这一段文字太多了,我怕我没有 100% get 到。

建议你换一种方式:以这段代码为基础,然后你去写一下详细的注释,即把你的文字都写代码的注释。

然后在注释里提出问题,这样我也知道是哪行代码、以及上下文是啥。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕九州4451910 #1
    set(userId,{})和set(req.sessionId,{})这两行代码是老师你写的,我对这两行的理解是分别在redis中设置了两个对象,分别是{userId:{}}和{req.sessionId:{}},这样理解不知道对不对?以上是第一个问题,第二个问题是:使用redis的目的是将客户端的用户标识userId和服务端的用户个人隐私信息对应起来,以便能够做登录验证,这个理解是否正确?如果是正确的话,那么通过set(req.sessionId,{})的操作已经将userId放入了redis中作了userId和内存数据库redis的关联,为什么还要写req.session={}呢?
    回复 有任何疑惑可以回复我~ 2020-08-16 19:59:41
  • 双越 回复 提问者 慕九州4451910 #2
    第一,理解正确;第二,理解正确;第三,req.session={} 就是一个初始化,没啥别的用意。
    回复 有任何疑惑可以回复我~ 2020-08-19 10:00:47
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信