Экспресс-валидатор isAfter всегда false - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь проверить, что определенная 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 голосов
/ 07 апреля 2019

Вот простой пример:
Определить 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;
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...