Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 什么';saveUninitialized和resave之间的区别是什么?_Node.js_Express_Session_Express Session - Fatal编程技术网

Node.js 什么';saveUninitialized和resave之间的区别是什么?

Node.js 什么';saveUninitialized和resave之间的区别是什么?,node.js,express,session,express-session,Node.js,Express,Session,Express Session,Express的会话中间件提供 重新保存:“强制将会话保存回会话存储,即使在请求过程中从未修改过会话。” saveUninitialized:”强制将“未初始化”的会话保存到存储中。当会话是新的但未被修改时,它将被取消初始化。” 这两个选项似乎都用于保存未修改的会话有什么区别?我想我应该从一个基本的答案开始,我到目前为止的一点理解,然后一起改进它。重要的问题已经“死”太久了 据我所知,区别在于: (未修改的“状态”与未初始化的状态不同) 重新保存:对于任何请求 会话中的任何内容都不需要更改(无

Express的会话中间件提供

重新保存:“强制将会话保存回会话存储,即使在请求过程中从未修改过会话。”

saveUninitialized:”强制将“未初始化”的会话保存到存储中。当会话是新的但未被修改时,它将被取消初始化。”


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

我想我应该从一个基本的答案开始,我到目前为止的一点理解,然后一起改进它。重要的问题已经“死”太久了

据我所知,区别在于:

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

重新保存:对于任何请求

  • 会话中的任何内容都不需要更改(无需登录等)
  • 需要更改会话(已登录)
“即使未修改,也强制保存会话”

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

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

“强制将“未初始化”的会话保存到存储中。当会话是新的但未修改时,该会话将被取消初始化。”

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


现在,只有当会话变量/cookie发生更改时,才会重新保存。如果要保存,请始终继续执行
resave:true

如果saveUninitialized值为“true”,但会话根本没有修改,则可能会重复该值。我知道它会将会话存储在数据库中,但会话cookie还会被设置吗?