10

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

4

3 回答 3

3

会话存储 API有一个可选的all () 方法“用于将存储中的所有会话作为数组获取”。

你会这样称呼它req.sessionStore.all((err, sessions)=>{ ... })

我只是尝试使用它,但它是可选的,并且 memcached 驱动程序(在我的情况下)没有实现它。

另一种方法是绕过这个,如果可能的话,查询存储技术本身。Hitalo 的回答就是这种方法的一个例子。

于 2020-04-13T04:37:14.297 回答
2

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

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

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

于 2012-12-24T13:57:02.727 回答
2

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

于 2018-01-18T02:48:52.217 回答