在connect-redis中返回会话值使用.get(sid,callback) 但它总是返回null,所以我认为它不能保存在redis中,但是在调查发现问题与Sid之后我检查会话保存正确的redis,请参阅/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)是字符串,即使将qoute添加到sid就像这个“\'sid \'”它将返回null
答案 0 :(得分:1)
回调的格式为callback(err, data)
。如果没有错误,则第一个参数将始终为null
。真正的反应在第二个参数中。
请参阅return fn(null, result);
中的.get()
。