express-validator isAfter始终为false

时间:2019-02-13 20:00:58

标签: javascript express express-validator validator.js

我试图验证某个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()需要一个字符串。

1 个答案:

答案 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;
})