首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node.js connect-redis回调(key,redis.get)返回null

node.js connect-redis回调(key,redis.get)返回null
EN

Stack Overflow用户
提问于 2013-08-04 16:43:16
回答 1查看 3.4K关注 0票数 0

在connect-redis中使用.get( Sid,callback)来返回会话值,但它总是返回null,所以我认为它不会保存在redis中,但我检查了它是否正确地将会话保存在redis中,在调查之后发现问题出在Sid上参见/connect-redis/lib/connect-redis.js

代码语言:javascript
复制
  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

代码语言:javascript
复制
  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

EN

回答 1

Stack Overflow用户

发布于 2013-08-04 17:19:54

回调采用callback(err, data)的形式。如果没有错误,第一个参数将始终为null。真正的响应在第二个参数中。

请参阅:.get()中的return fn(null, result);

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18041240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档