Express框架的会话中间件提供了几个可配置的选项。
resave:'即使在请求期间未修改会话,也会强制将会话保存回会话存储器。'
saveUninitialized:'强制保存“未初始化”的会话到存储器中。当会话是新的但没有被修改时,会话处于未初始化状态。'
看起来这两个选项都是用于保存未修改的会话。那么它们有什么区别呢?
Express框架的会话中间件提供了几个可配置的选项。
resave:'即使在请求期间未修改会话,也会强制将会话保存回会话存储器。'
saveUninitialized:'强制保存“未初始化”的会话到存储器中。当会话是新的但没有被修改时,会话处于未初始化状态。'
看起来这两个选项都是用于保存未修改的会话。那么它们有什么区别呢?
我想先提供一个基本回答,我的一点了解,并一起改善它。重要的问题已经“死”太久了。
从这里我理解到区别是:
(未修改的“状态”与未初始化的状态是不同的)
resave: 对于任何请求
“即使未修改也强制保存会话”
saveUninitialized: 关于会话的状态,如果仍处于未初始化状态。
“强制将“未初始化”的会话保存到存储区。当会话是新的但未被修改时,会话是未初始化的。”
基本上,只有在会话被修改时才会将其保存在存储中;如果您添加、删除或编辑会话Cookie(例如:req.session.test = 'some value'
)。如果您想要将所有会话保存在存储中,即使它们没有任何修改,请使用saveUninitialized: true
。
现在,重新保存也仅在会话变量/cookie更改时发生。如果您希望始终保存,请使用resave: true
。