Javascript node.js connect redis redis.get(key,callback)返回null
在connect redis中返回会话值use.get(sid,回调) 但它总是返回null,所以我认为它不保存在redis中,但我在调查后正确地检查了它在redis中的会话保存,发现问题在于Sid see/connect redis/lib/connect-redis.jsJavascript node.js connect redis redis.get(key,callback)返回null,javascript,node.js,Javascript,Node.js,在connect redis中返回会话值use.get(sid,回调) 但它总是返回null,所以我认为它不保存在redis中,但我在调查后正确地检查了它在redis中的会话保存,发现问题在于Sid see/connect redis/lib/connect-redis.js RedisStore.prototype.get = function(sid, fn){ sid =this.prefix + sid; debug('GET "%s"', sid); con
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改为字符串,它将返回session
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回调的形式为
回调(err,data)
。如果没有错误,第一个参数将始终为null
。真正的响应在第二个参数中
请参阅:
返回fn(空,结果)在.get()
无数据返回它从中返回的响应,如果条件见(!data)return fn(null.);你说它在你的问题中返回了null
。空字符串不是null
。返回值的类型是字符串吗?查看回调函数会很有帮助。