user.addDays(3)
应将user.expires
设置为当前时间+3天。但是,它没有。
let User = sequelize.define('User', {
email: DataTypes.STRING,
name: DataTypes.STRING,
expires: DataTypes.DATE
}, {
instanceMethods: {
addDays: function(days) {
let date = this.expires ? this.expires : new Date()
date.setTime(date.getTime() + days * 86400000)
this.expires = date
return this.save()
}
}
})
没有保存||验证错误,但不修改user.expires。仅供参考,如果我在保存之前检查user
对象,则会更新expires
字段。
如果我改变:
this.expires = new Date()
user.expires
更改为当前日期,因此vanilla Date()
对象可以正常工作。
我似乎错过了一些明显的东西。
非常感谢任何帮助。提前谢谢。
UPD:根据this question,它可能与node-pg包有关。所以,我应该明确提到 - 我也使用PostgreSQL。
UPD#2:目前,解决了Moment.js的问题:
addDays: function(days) {
let date = this.expires? moment(this.expires) : moment()
this.expires = date.add(days, 'days')
return this.save()
}
有效。但是,vanilla JS解决方案仍然缺失。我很确定,我提供给PG的日期格式有问题。但没有错误,这很奇怪。
澄清仍然受到赞赏。