老师的代码如下:
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信息?