express-session 中的resave 的屬性的作用是什么呢官方文檔這樣直譯過來:強(qiáng)制session保存到session store中。即使在請(qǐng)求中這個(gè)session沒有被修改。但是這個(gè)并不一定是必須的,如果客戶端有 兩個(gè)并行的請(qǐng)求到你的客戶端,一個(gè)請(qǐng)求對(duì)session的修改可能被另外一個(gè)請(qǐng)求覆蓋掉,即使第二個(gè)請(qǐng)求并沒有修改sesion。
默認(rèn)是true,但是默認(rèn)值已經(jīng)過時(shí),因此以后default可能會(huì)被修改。因此好好研究你的需求選擇一個(gè)最適用的。大多數(shù)情況下你可能需要false
最好的知道你的store是否需要設(shè)置resave的方法是通過查看你的store是否實(shí)現(xiàn)了touch方法(刪除那些空閑的session。同時(shí)這個(gè)方法也會(huì)通知session store指定的session 是活動(dòng)態(tài)的),如果實(shí)現(xiàn)了那么你可以用resave:false,如果沒有實(shí)現(xiàn)touch方法,同時(shí)你的store對(duì)保存的session設(shè)置了一個(gè)過期的時(shí)間,那么建議你用resave:true我的理解是 某個(gè)客戶端有兩個(gè)請(qǐng)求,第一個(gè)請(qǐng)求修改了session第二個(gè)沒有修改,會(huì)將第一個(gè)修改的session覆蓋掉從而結(jié)果就是沒有修改session
1 回答

慕桂英4014372
TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
并發(fā)請(qǐng)求會(huì)導(dǎo)致的session不一致,因?yàn)樵O(shè)置了resave選項(xiàng)為true后(默認(rèn)為true),默認(rèn)在你每次調(diào)用res.send方法發(fā)送響應(yīng)的時(shí)候會(huì)執(zhí)行一次req.session.save,所以不管這兩個(gè)請(qǐng)求修沒修改session,最后默認(rèn)存儲(chǔ)session的store里的值會(huì)是最后執(zhí)行res.send方法也就是響應(yīng)最慢的那個(gè)請(qǐng)求中session最后的值。
- 1 回答
- 0 關(guān)注
- 868 瀏覽
添加回答
舉報(bào)
0/150
提交
取消