我试图验证某个endDate在startDate之后。我已经尝试了所有发现的内容,可以想到,但是没有任何效果。我尝试过的一些示例:
check('endDate').isAfter(new Date('startDate')).withMessage('End date of lab must be valid and after start date')
check('endDate').isAfter(new Date('startDate').toDateString()).withMessage('End date of lab must be valid and after start date')
check('endDate').isAfter('startDate').withMessage('End date of lab must be valid and after start date')
check('endDate').isAfter(new Date('' + 'startDate').toDateString()).withMessage('End date of lab must be valid and after start date')
文档说isAfter()需要一个字符串。
答案 0 :(得分:0)
这是一个简单的示例:
定义startDate
,例如
var startDate = new Date(2019, 11, 22); // or var startDate = new Date();
然后您可以查看所需的日期
check('endDate').isAfter(new Date(startDate).toDateString()).withMessage('End date of lab must be valid and after start date')
如果startDate
也是输入字段,则可以使用自定义验证程序:
check('endDate').custom((value, { req }) => {
if(new Date(value) <= new Date(req.body.startDate)) {
throw new Error ('End date of lab must be valid and after start date');
}
return true;
})