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

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