Создать условную вспомогательную функцию в Node JS - PullRequest
1 голос
/ 19 апреля 2020

Этот код повторяется во многих местах

const errors = validator.validationResult(req);
if (!errors.isEmpty()) {
    return res.status(422).json({ errors: errors.mapped() });
}

Так что я преобразовал его в вспомогательную функцию. Поэтому я создал этот вспомогательный код

module.exports.validationErrorsHandler = (req, res, validator) => {
  const errors = validator.validationResult(req);
  if (!errors.isEmpty()) {
    return res.status(422).json({ errors: errors.mapped() });
  }
}

Но я думаю, что это неправильно, потому что он выполняет оператор return в вспомогательной функции, только если условие истинно.

, если я его вызываю внутри основного кода, подобного этому, он запускается, но затем выполнение кода прерывается

const helpers = require('../helpers')
helpers.validationErrorsHandler(req, res, validator)

1 Ответ

0 голосов
/ 19 апреля 2020

Поскольку вы возвращаетесь по условию, вам нужно поместить эту логику c в основную функцию, а не в (только) вспомогательную функцию. Вы можете сделать так, чтобы вспомогательная функция возвращала вызов res.status, затем в основном коде посмотрите, существует ли возвращаемое значение вспомогательной функции. Если так, вернись. Сохраните свою вспомогательную функцию как есть, но измените свой основной код на:

const possibleErrorRes = helpers.validationErrorsHandler(req, res, validator);
if (possibleErrorRes) return;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...