express-session框架解读一点疑问

store 继承了event 事件

function Store () {
  EventEmitter.call(this)
}

/**
 * Inherit from EventEmitter.
 */

util.inherits(Store, EventEmitter)

memory 继承了

module.exports = MemoryStore

/**
 * A session store in memory.
 * @public
 */

function MemoryStore() {
  Store.call(this)
  this.sessions = Object.create(null)
}

index.js中

 // get the session store
  var store = opts.store || new MemoryStore();
    ......
  
  store.on('disconnect', function ondisconnect() {
    storeReady = false
  });
  store.on('connect', function onconnect() {
    storeReady = true
  });
  //这里不开始不能理解

上面代码 两次继承都只是 继承了基本的事件,但是nodejs中单纯的event 本身并没有 connect事件啊,那他这个监听是什么时候被激活勒? 难道无用? 不能理解

阅读 2.6k
3 个回答

这个connct并不是一个实际的东西,只是一个事件名, 实例可以监听任意一个合法的事件名,而能不能接收到消息,是看EventEmitter会不会发出该事件。

EventEmitter.emit('connect')的时候,这里的on('connect', callback)就会触发;但假如EventEmitter.emit('conn'),那么相对应的也要把监听的事件名改为conn

应该是app.use(session())的时候。里面req发出的connected事件

那里设置监听connect事件,如果需要可以使用store.emit('connect')触发

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题