Как передать несколько переменных в пользовательский экспресс-валидатор при использовании подстановочных знаков? - PullRequest
0 голосов
/ 24 мая 2019

У меня есть массив, который содержит несколько записей с двумя датами - start_date и end_date, я использую специальный экспресс-валидатор, чтобы убедиться, что start_date всегда меньше, чем end_date.Я пытаюсь решить эту проблему, используя Wildcard

Пример массива:

[  
    {
      "start_date":"01-01-1990",
      "end_date":"01-01-1991"
    },
    {
      "start_date":"01-01-1990",
      "end_date":"01-01-1980"
    }
]

Я пробовал вышеупомянутый подход, но второй параметр вПользовательский валидатор не принимает точное значение из массива.

Пользовательский метод валидатора:

module.exports.isValidEndDate = function(value, start_date) {
    if (value != null) {
        const end_date = moment.utc(value,"DD-MM-YYYY",true).endOf('month');
        const start_date = moment.utc(start_date,"DD-MM-YYYY",true).startOf('month');
        return starting_date  < end_date;
    } else {
        return false;
    }
};

То, как я вызываю вышеуказанный метод, таково::

req.checkBody('array.*.end_date', "end_date is empty or invalid").notEmpty().isValidDate(['array.*.end_date']).isValidEndDate(['array.*.start_date']);

Фактический результат параметра start_date в функции isValidEndDate будет равен [ 'array.*.start_date' ], тогда как я ожидаю, что он будет содержать фактическое значение start_date

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...