【发布时间】:2012-12-10 17:21:29
【问题描述】:
我发现许多其他语言的类似问题 - ASP.net、Django 等......但是,我对 Express.js 感兴趣而不是 Node.js 。如何查看当前处于活动状态的所有会话?
【问题讨论】:
我发现许多其他语言的类似问题 - ASP.net、Django 等......但是,我对 Express.js 感兴趣而不是 Node.js 。如何查看当前处于活动状态的所有会话?
【问题讨论】:
我会查看您用于会话数据的存储,除非您使用 cookie 来实际存储所有会话数据,而不仅仅是会话 ID。
也许有一种方法可以访问会话列表,而不管您将会话数据存储在哪里,但我认为没有。但我可能在这里错了。
Express Session API 被描述为here,以防你找不到它(我花了很多时间弄清楚许多 Express 对象实际上是 Connect 对象并在那里记录)。但你可能知道...
【讨论】:
此代码构建了一个路由,该路由返回一个包含所有已保存会话的数组。
如果您将express 与express-session 模块一起使用。
router.get('/sessions', (req, res) => {
req.sessionStore.sessionModel.findAll()
.then(sessions => sessions.map(sess => JSON.parse(sess.dataValues.data)))
.then((sessions) => {
res.send(sessions)
})
})
【讨论】:
Session Store API 有一个可选的all() method“用于将存储中的所有会话作为数组获取”。
你可以这样称呼它req.sessionStore.all((err, sessions)=>{ ... })
我只是尝试使用它,但它是可选的,而且 memcached 驱动程序(在我的情况下)没有实现它。
另一种方法是绕过这一点,并尽可能查询商店技术本身。 Hitalo 的回答就是这种方法的一个例子。
【讨论】: