保存未初始化和重新保存有什么区别?



Express的会话中间件提供了几个可配置的选项。

resave: '强制将会话保存回会话存储库,即使会话在请求期间从未被修改。'

saveUninitialized: '强制将未初始化的会话保存到存储区。当会话是新的但未被修改时,会话是未初始化的。

似乎这两个选项都用于保存未修改的会话。有什么区别?

我想我会从一个基本的答案开始,我到目前为止的一点理解,并共同改进它。这个重要的问题被"搁置"太久了。

从这里我了解到区别是:

(未修改的"状态"与未初始化的状态不同)

ressave :对于已发出的任何请求

  • 会话中的任何内容都不需要更改(无登录等)。
  • 需要更改会话(已登录)

"强制保存未修改的会话"

saveUninitialized:是关于会话的状态,如果它仍然处于未初始化状态。

  • 仅不修改,会话中的任何内容都不需要更改(无登录等)。

"强制将"未初始化"的会话保存到存储区。当会话是新的但未被修改时,会话是未初始化的。"

基本上,会话只有在被修改时才会保存在存储中;如果添加删除编辑会话cookie(例如:req.session.test = 'some value')。如果你想把所有的会话都保存在存储中,即使它们没有任何修改,也可以使用saveUninitialized: true

现在,只有当会话变量/cookie发生变化时才会重新保存。如果你想保存,那就选择resave: true

最新更新