Javascript node.js connect redis redis.get(key,callback)返回null

Javascript 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

在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);

    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
。返回值的类型是字符串吗?查看回调函数会很有帮助。