在 connect-redis 中返回会话值使用 .get(sid, callback) 但它总是返回 null 所以我认为它没有保存在 redis 但我在调查后检查它会话保存在 redis 中正确发现问题与 Sid 见 /connect-redis /lib/connect-redis.js
RedisStore.prototype.get = function(sid, fn){
sid =this.prefix + sid;
debug('GET "%s"', sid);
console.log('lib');
console.log(sid);
this.client.get( sid , function(err, data){
if (err) return fn(err);
if (!data) return fn(null,'');
var result;
data = data.toString();
debug('GOT %s', data);
try {
result = JSON.parse(data);
} catch (err) {
return fn(err);
}
return fn(null, result);
});
};
如果我将 sessionID 作为字符串,它将返回会话
RedisStore.prototype.get = function(sid, fn){
// sid =this.prefix + sid;
debug('GET "%s"', sid);
console.log('lib');
console.log(sid);
this.client.get( 'lweUw//EdbygbGr/2gAZt0kb' , function(err, data){
if (err) return fn(err);
if (!data) return fn(null,'');
var result;
data = data.toString();
debug('GOT %s', data);
try {
result = JSON.parse(data);
} catch (err) {
return fn(err);
}
return fn(null, result);
});
};
笔记:
typeof(sid) 是字符串,即使像这样 "\'sid\'" 将 qoute 添加到 sid 也会返回 null