2016-04-27 75 views
2

我試圖設置一個特定的有效期爲3個月的cookie。我可以將cookie設置爲正常,但設置的失效不起作用。當使用moment.toDate()時Express 4.13.4中忽略Cookie到期日期()

我用momentJS在我想要的時候創建一個日期對象。從控制檯輸出正確的時間,但該cookie沒有正確的值,它的價值將在幾分鐘內過期,而不是從日期起的3個月。

// Create the date the cookies will expire on 
var cookieDate = moment().add(6, 'months').toDate(); 
console.log(cookieDate); 
res.cookie('username', user.username, { expires: cookieDate }); 

我查看了文檔,它只是要求將一個Date對象傳遞給它。

我也瀏覽了一下stackoverflow,我能找到的唯一東西是this,它告訴OP使用req.session.cookie,這看起來不正確,因爲您應該設置一個響應客戶端的cookie並且不在會議中。

回答

0

我發現通過一些試驗和錯誤,由moment.toDate()創建的日期對象可能是一個有效的Date對象,它不被Express接受。

下面的代碼固定在錯誤:

var cookieDate = new Date(moment().add(6, 'months').toDate()); 
res.cookie('username', user.username, { expires: cookieDate });