Как я могу подтвердить дату рождения с помощью Express-Validato?

Я создаю веб-приложение, в котором я не могу добавить несколько пользователей в это приложение, но мне нужны все мои пользователи с определенным возрастом, для этого ограничения я пытаюсь проверить dbo с помощью экспресс-валидатора, но экспресс-валидатор позволяет мне проверять только строки. Как я могу проверить dbo с помощью экспресс-валидатора?

let tdate = new Date(); req.checkBody('datadenasc',"Error: Invalid Date of Birth!").isBefore(tdate.getFullYear()-18).isAfter(tdate.getFullYear()-65);

HTML:

| Dbo:
      input#datadenasc.input(type='date', name='datadenasc', required='')

person pp fernandes    schedule 25.06.2018    source источник


Ответы (1)


что я сделал было

    `let d = new Date();
     let year = d.getFullYear();
     let month = d.getMonth();
     let day = d.getDate();
     let cA = new Date(year - 18, month, day).toDateString();
     let cB = new Date(year - 65, month, day).toDateString();`

req.checkBody('datadenasc','Error: Invalid Date of Birth!').isBefore(cA).isAfter(cB);

В первой строке я получаю сегодняшнюю дату. Затем во второй, третьей и четвертой строке я получаю от сегодняшней даты год, месяц и день. В последней строке я создаю две даты: одна для минимального возраста (cA), а другая для максимального возраста (cB).

Наконец, я сравниваю дату, которую получаю на входе, с датами cA и cB.

(Примечание: Express Validator проверяет только строки, поэтому мне пришлось преобразовать и (cB), и (cA) в строки, используя метод toDateString()).

person pp fernandes    schedule 25.06.2018