关于sessionData为null的问题
来源:7-15 完成server端登录的代码
慕莱坞0998854
2020-12-13
老师的代码如下:
let needSetCookie = false;
let userId = req.cookie.userid;
if (!userId) {
needSetCookie = true;
userId = `${Date.now()}_${Math.random()}`;
// 初始化redis 中的session值
set(userId, {});
}
req.sessionId = userId;
get(req.sessionId)
.then((sessionData) => {
// 问题就是下面这句!!!!!!!!!!!!
if (sessionData == null) {
// 初始化redis 中的session值
set(req.sessionId, {});
// 设置session
req.session = {};
} else {
req.session = sessionData;
}
console.log("req.seesion", req.session);
// 处理postData
return getPostData(req);
})
老师,我想问一下,什么情况下sessionData会为null呢?因为前面有这么一句代码:
set(userId, {});
这就保证了sessionData至少为 {} 啊,这就永远不会出现为null的情况啊?难道是redis会清理自己存储的key为userId,value为相应的session信息?
写回答
1回答
-
redis 数据被清空了(例如切换 redis 数据库,或者其他误操作),而 cookie 还有值。
此时,sessionData 就是 null 了。
012020-12-14
相似问题
关于return的问题
回答 1