在Sequelize的文档中,他们提到了以下将日期字段值限制在特定日期之后的方法。
validate: {
isAfter: '2018-10-02'
}
但是我想对req.body
喜欢
validate: {
isAfter: anotherFieldName // fieldname instead of static value
}
答案 0 :(得分:2)
字段验证器无权访问模型实例的其他属性。为了验证实例上的两个值是否通过了验证检查,您应该在模型选项中使用Sequelize的自定义验证对象:
const SomeModel = db.define(
'some_model',
{
start_date: {
type: Sequelize.DATEONLY,
validate: {
isDate: true
}
},
end_date: {
type: Sequelize.DATEONLY,
validate: {
isDate: true
}
},
},
{
validate: {
startDateAfterEndDate() {
if (this.start_date.isAfter(this.end_date)) {
throw new Error('Start date must be before the end date.');
}
}
}
}
);