在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Android  HTML/ 關(guān)于express-session 的一個問題

關(guān)于express-session 的一個問題

express-session 中的resave 的屬性的作用是什么呢官方文檔這樣直譯過來


:強制session保存到session store中。即使在請求中這個session沒有被修改。但是這個并不一定是必須的,如果客戶端有

     兩個并行的請求到你的客戶端,一個請求對session的修改可能被另外一個請求覆蓋掉,即使第二個請求并沒有修改sesion。 
     默認(rèn)是true,但是默認(rèn)值已經(jīng)過時,因此以后default可能會被修改。因此好好研究你的需求選擇一個最適用的。大多數(shù)情況下你可能需要false 
    最好的知道你的store是否需要設(shè)置resave的方法是通過查看你的store是否實現(xiàn)了touch方法(刪除那些空閑的session。同時這個方法也會通知session store指定的session          是活動態(tài)的),如果實現(xiàn)了那么你可以用resave:false,如果沒有實現(xiàn)touch方法,同時你的store對保存的session設(shè)置了一個過期的時間,那么建議你用resave:true 



我的理解是 某個客戶端有兩個請求,第一個請求修改了session第二個沒有修改,會將第一個修改的session覆蓋掉從而結(jié)果就是沒有修改session

回答
編輯回答
掛念你

并發(fā)請求會導(dǎo)致的session不一致,因為設(shè)置了resave選項為true后(默認(rèn)為true),默認(rèn)在你每次調(diào)用res.send方法發(fā)送響應(yīng)的時候會執(zhí)行一次req.session.save,所以不管這兩個請求修沒修改session,最后默認(rèn)存儲session的store里的值會是最后執(zhí)行res.send方法也就是響應(yīng)最慢的那個請求中session最后的值。

參考鏈接

2017年1月9日 12:38