Проверяйте переменные тела запроса через Swagger и Express - PullRequest
0 голосов
/ 07 декабря 2018

Я сейчас использую Swagger (2.0) на Node.js.Мой файл YAML проверяется правильно, и запросы выполняются.Мой конкретный вызов имеет тело запроса, использующее следующий формат -

{
  "postalCode": "invalidpostalcode",
  "phone": "invalidnumber",
  "website": "invalidwebsite"
}

Я хотел бы проверить каждую переменную тела, прежде чем переходить к следующему фрагменту кода.Для проверки данных я хотел бы использовать validator.js .

Теперь мой базовый код проверки выглядит примерно так -

  if(!validator.isURL(req.body.website)){
    var tmp  = {
      "message": req.__('error.url', {
          field: req.body.website
      })
    }
    res.status(400).json(tmp);
    return;

  }
  if(!validator.isPostalCode(req.body.postalCode,'any')){
    var tmp  = {
      "message": req.__('error.postalCode', {
          field: req.body.postalCode
      })
    }
    res.status(400).json(tmp);
    return;
  }

Есть ли лучший способ проверки данных, отправленных через API, который потребовал бы меньше кода?Например, используя функцию для управления большей частью логики?

, хотя это один из примеров конечной точки, в будущем у меня будут некоторые, для которых потребуется более 20 параметров тела.

Я попытался создать функцию, которая будет возвращать код ответа.Однако это возвращает ошибку Cannot set headers after they are sent to the client.

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