express-session 如何管理其会话存储?

How express-session manages its session storage?

假设我的 node.js+express+socket.io 服务器和 express-session 中间件正在使用 mongoDB 作为存储 ('connect-mongo')会话的 maxAge 设置为 null(即只要用户的浏览器打开,cookie 就会持续),现在该服务器已完全关闭。

时代在流逝,进入新的世纪,EarthZombiesWerewolfsAlien Invaders撕裂,一群勇敢的科学家发现我的服务器的完整残余并启动它们。

因此,此时许多(如果不是全部)客户端的浏览器已关闭并清除了 cookie。如果其中一个客户端连接到我的服务器,服务器会发现他(客户端)没有提供任何有效的 cookie,并会为他创建一个新的 cookie。

现在 - 我感兴趣的部分 - 存储在 connect-mongo 存储中的那些旧 sessions 发生了什么。显然服务器在他宕机时无法清理它们,现在它们将作为数据库存储中的死货挂起?或者它背后有一些令人兴奋的魔法,在服务器重新启动后,这些用户会以某种方式 'know' 很久以前就结束了他们的会话,而服务器已关闭并会相应地清理所有内容?

express-session 不会对其商店强制执行任何清理行为(至少我没有在 source code). However, stores may certainly clean up stale sessions. For example, from the connect-mongo documentation:

中看到任何证据

By default, connect-mongo uses MongoDB's TTL collection feature (2.2+) to have mongod automatically remove expired sessions. But you can change this behavior.