2013-08-04 3 views
0

in connect-redis для возврата значения сеанса use .get (sid, callback) , но он всегда возвращает null, поэтому я думаю, что его не сохранить в redis, но Я проверить его сессии сохранить в Redis правильно после того, как проблема исследования находка с Сидом см /connect-redis/lib/connect-redis.jsnode.js connect-redis redis.get (key, callback) return null

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», он вернет нуль

+0

Было бы полезно увидеть вашу функцию обратного вызова. –

ответ

0

Обратный вызов принимает форму callback(err, data). Если ошибки нет, первый параметр всегда будет null. Реальный ответ находится во втором параметре.

См. return fn(null, result); в .get().

+0

данные не возвращают ответ, который он возвращает, если условие видит (! Данные) return fn (null, ''); – april

+0

Вы сказали, что вернули «нуль» в свой вопрос. Пустая строка не 'null'. Является ли тип возвращаемого значения строкой? –