saveUninitialized和resave有什么区别?
Express会话中间件提供了几个可configuration的选项 。
resave :'强制会话保存回会话存储区,即使会话在请求期间从未被修改。
saveUninitialized :'强制将未初始化的会话保存到商店。 当一个会话是新的,但没有被修改时,会话是未初始化的。
看来,这两个选项都是为了保存未修改的会话。 有什么不同?
我想我会从一个基本的答案开始,到目前为止我的一点理解,并一起改进。 重要的问题已经“死”了太久。
从这我明白不同的是:
(未修改的“状态”与未初始化的状态不同)
resave :对于任何请求
- 会话中没有什么需要改变(没有login等)。
- 需要更改会话(login)
“即使未经修改也会保存会话”
saveUninitialized :关于会话状态,如果它仍处于未初始化状态。
- 没有修改,会话中没有什么需要改变(没有login等)。
“强制一个未初始化的会话被保存到商店,当一个会话是新的但未被修改的时候,这个会话是未初始化的。
基本上,会话只有在修改时才会保存在商店中; 如果您添加 , 删除或编辑会话cookie(例如: req.session.test = 'some value'
)。 如果要将所有会话保存在存储区中,即使没有任何修改,请使用saveUninitialized: true
。
现在,只有当会话variables/ cookies改变时,重新保存也会发生。 如果你想保存,那么总是使用resave: true