Session 如何将事件侦听器添加到具有nodejs和express的会话(redis)中?

Session 如何将事件侦听器添加到具有nodejs和express的会话(redis)中?,session,node.js,redis,express,Session,Node.js,Redis,Express,每当用户的会话被破坏/超时时,我想运行一个函数。有没有一种方法可以使用redis会话存储在nodejs和express中 会话存储本身从EventEmitter继承: 尽管没有一个实现会发出要绑定到的事件,包括redis store: 你可以很容易地把redis和黑客连接起来,在自己身上破解这些事件,这样你就可以在需要的地方绑定它们 RedisStore.prototype.destroy = function(sid, fn){ sid = this.prefix + sid;

每当用户的会话被破坏/超时时,我想运行一个函数。有没有一种方法可以使用redis会话存储在nodejs和express中

会话存储本身从EventEmitter继承:

尽管没有一个实现会发出要绑定到的事件,包括redis store:

你可以很容易地把redis和黑客连接起来,在自己身上破解这些事件,这样你就可以在需要的地方绑定它们

RedisStore.prototype.destroy = function(sid, fn){
    sid = this.prefix + sid;
    this.client.del(sid, fn);
  };
变成

RedisStore.prototype.destroy = function(sid, fn){
    sid = this.prefix + sid;
    this.client.del(sid, fn);
    this.emit('destroy');
  };
然后您可以绑定到“销毁”事件

var connect = require('connect')
      , RedisStore = require('connect-redis')(connect);

var store = new RedisStore;

store.on('destroy', function() {
  // session was destroyed
});

connect.createServer(
  connect.cookieParser(),
  connect.session({ store: store, secret: 'keyboard cat' })
);