【问题标题】:[nodejs]How expressjs destroy the expired session?[nodejs]expressjs如何销毁过期的session?
【发布时间】:2016-04-20 10:32:58
【问题描述】:

当我在开发 java web 时,web.xml 中有一个配置如下:

<session-config>
    <session-timeout>15</session-timeout>
</session-config>

这意味着会话将在 15 分钟内被销毁,而相关的客户端(网络浏览器)尚未访问该网站。我什至可以使用实现 HttpSessionListener 来获得会话生命周期的挂钩。

但是当我通过expressjsexpress-sessionconnect-memcached memcached 开发节点网络时。我在express-session 的文档中没有找到任何关于会话生命周期的信息。

所以我的问题是,expressjsexpress-session 会破坏会话吗?何时以及如何?

【问题讨论】:

  • 您在 express-session 中寻找 maxAge cookie 属性和在 connect-memcached 中寻找 ttl 属性
  • 非常感谢。我还有一个问题,我将cookie.maxAge 设置为7 天。但我发现会话将在生产环境中的 5 ~ 10 分钟内过期。所有其他环境都按预期工作。你对此有什么线索吗?

标签: node.js session express


【解决方案1】:

你可以使用

req.session = null;

【讨论】:

  • 这件事没有像 java web 容器那样的钩子(HttpSessionListener),我不知道什么时候应该销毁它?这在节点世界中完全不是问题吗?
  • @Howard - 您不必自己破坏 Express 会话。会话基础设施将在它们过期后一段时间释放它们,然后垃圾收集器将清理它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
  • 1970-01-01
  • 2017-07-27
  • 2011-06-25
  • 2018-10-10
  • 2021-06-27
  • 2014-06-01
相关资源
最近更新 更多