2016-04-27 72 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 });