use*_*874 37 node.js express mean-stack express-session
我是MEAN堆栈中的新手.我读了快递会话github doc,但有一些我无法清除的选项.那些选择是saveUninitialized
和resave
.
任何人都可以请举例说明使用的优点是什么saveUninitialized
,resave
以及如果我们在该选项中更改布尔值会产生什么影响.
句法:-
app.use(session({
resave: false,
saveUninitialized: true,
}))
Run Code Online (Sandbox Code Playgroud)
rob*_*lep 92
假设全局启用会话(对于所有请求).
当客户端发出HTTP请求,并且该请求不包含会话cookie时,将创建一个新会话express-session
.创建新会话有以下几点:
req.session
saveUninitialized
请求结束时的值,会话对象将存储在会话存储(通常是某种数据库)中如果在请求的生命周期内未修改会话对象,则在请求结束时以及何时saveUninitialized
为false时,(仍然为空,因为未修改)会话对象将不会存储在会话存储中.
这背后的原因是这将阻止大量空会话对象存储在会话存储中.由于存储没有任何用处,因此会话在请求结束时被"遗忘".
您想什么时候启用它?例如,当您希望能够识别重复访问者时.您将能够识别这样的访问者,因为他们发送包含唯一ID的会话cookie.
关于resave
:可能必须为不支持"touch"命令的会话存储启用此功能.这样做是告诉会话存储特定会话仍处于活动状态,这是必要的,因为一些存储将在一段时间后删除空闲(未使用)会话.
如果会话存储驱动程序未实现touch命令,则应启用resave
此选项,以便即使在请求期间未更改会话时,它仍会在存储中更新(从而将其标记为活动状态).
因此,如果您需要启用此选项,则完全取决于您正在使用的会话存储.
Yog*_*dav 14
resave
:这基本上意味着对于服务器的每个请求,它都会重置会话 cookie。即使请求来自同一用户或浏览器,并且会话在请求期间从未被修改。
saveUninitialized
:当创建一个空的session对象并且没有设置任何属性时,就是未初始化状态。所以,设置saveUninitialized
为false如果不修改的话将不会保存会话。
resave
和 的默认值saveUninitialized
都是true,但不推荐使用默认值。因此,请根据用例设置适当的值。
小智 6
归档时间: |
|
查看次数: |
15991 次 |
最近记录: |