查看express.js中所有当前活动的会话

时间:2012-12-24 08:04:57

标签: node.js session express

我发现了许多其他语言的类似问题 - ASP.net,Django等......但是,我对Express.js感兴趣而不是Node.js。如何查看当前处于活动状态的所有会话?

3 个答案:

答案 0 :(得分:1)

我会查看您用于会话数据的商店,除非您使用cookie实际存储所有会话数据,而不仅仅是会话ID。

也许有一种方法可以访问会话列表,无论你在哪里存储会话数据,但我认为没有。但我可能在这里错了。

Express Session API被描述为here,以防您无法找到它(我花了很多时间来弄清楚许多Express对象实际上是Connect对象并在那里记录)。但你可能知道了......

答案 1 :(得分:0)

此代码构建一个返回所有已保存会话数组的路由。 如果您将expressexpress-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)
    })
})

答案 2 :(得分:0)

Session Store API有一个可选的all() method“用于以阵列形式获取商店中的所有会话”。

您将其称为req.sessionStore.all((err, sessions)=>{ ... })

我只是尝试使用它,但是它是可选的,而memcached驱动程序(以我为例)并未实现。

另一种方法是绕过此方法,并在可能的情况下查询商店技术本身。 Hitalo的答案就是这种方法的一个例子。