У Redis Store нет метода get? - PullRequest
       17

У Redis Store нет метода get?

1 голос
/ 14 сентября 2011

http://senchalabs.github.com/connect/middleware-session.html упоминания .... "Каждое хранилище сеансов должно реализовывать следующие методы:"

  1. .get (sid, callback)
  2. .set (sid, session, callback)
  3. .destroy (sid, callback)

Я пытаюсь получить SID с помощью следующего кода:

Узел JavaScript, используя соединение Socket.io

io.sockets.on('connection', function(socket) {
  var sid = socket.id;
  if (sid) {
    sessionStore.get(sid, function (error, session) {
      console.log("Connect Sid: " + sid);
    });
  }
});

И я получаю следующую ошибку:

TypeError: Object function RedisStore(options) {
    options = options || {};
    Store.call(this, options);
    this.client = new redis.createClient(options.port || options.socket, options.host, options);
    if (options.pass) {
      this.client.auth(options.pass, function(err){
        if (err) throw err;
      });    
    }

    if (options.db) {
      var self = this;
      self.client.select(options.db);
      self.client.on("connect", function() {
        self.client.send_anyways = true;
        self.client.select(options.db);
        self.client.send_anyways = false;
      });
    }
  } has no method 'get'

Включение Redis

//Redis store for storage
var sessionStore = require('connect-redis')(express); 
...
...
app.use(express.session({secret: "keyboard cat",store: new sessionStore}));

Ответы [ 3 ]

1 голос
/ 14 сентября 2011

Похоже, вы забыли набрать new, когда создавали магазин, возможно?

0 голосов
/ 29 июля 2012

Я делаю это так:

var RedisStore = require('connect-redis')(express); 
var sessionStore = new RedisStore; 
...
app.use(express.session({secret: "keyboard cat",store: sessionStore}));

Таким образом, при необходимости вы можете ссылаться на данные сеанса, используя объект sessionStore из кода socket.io позже.

0 голосов
/ 14 сентября 2011

Взято из: https://github.com/visionmedia/connect-redis

This means express users may do the following, since express.session.Store points to the connect.session.Store function:

Кажется, это работает:

express.session.Store(sid, function(){ console.log("Connect Sid: " + sid); });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...