1

嗨,我正在使用expressjs我的 Web 应用程序,并且我使用session中间件,我的问题是如何在会话到期之前做一些事情?

例如,我在会话中存储了一些东西,我将其设置req.session.cookie.maxAge为 60000(1 分钟),当会话超时时,我想将会话中的数据保存到磁盘,我该怎么做呢?我检查了API,该destroy功能仅支持callback...

谢谢!

4

1 回答 1

1

假设您使用connect-session的是会话过期事件。

会话到期:

  • 在客户端上(当 cookie 过时时)。在发出请求之前无法知道它,因此存在永远不会触发事件的危险。
  • 在会话存储中,通常使用某种形式的生存时间。并非所有会话存储都支持事件,因此通常无法进行通知。

但是,您可以尝试使用setTimeout()- 当它超时时检查会话的到期日期是否足够接近现在,并执行您需要做的任何事情。

于 2012-10-31T14:51:51.177 回答