Узел Оптимизация промежуточного программного обеспечения обработчика ошибок?

Хей,

Я работаю над активатором на платформе nodeJS, которая предоставляет REST API.
Мне нужно реализовать несколько пользовательских обработчиков ошибок, чья бизнес-логика будет реализована.

По сути, мне приходится иметь дело с запросом POST, содержимое которого закодировано как application/json,
Я ожидаю получить список объектов, представляющих услуги в массиве.
Каждый элемент массива является объектом, который имеет следующую структуру

{
  "code": "sampleCode",
  "id": "someId",
  "status: "someStatus"
}

С точки зрения бизнес-логики каждая услуга принадлежит семье. И у каждого семейства есть некоторые конфигурации, хранящиеся в файле свойств.

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

Правила таковы:

  • "code значение не может быть пустым.
  • "code" значение должно быть в списке, определенном в свойствах
  • "code" если значение кода принадлежит семейству foo или идентификатор бара не может быть пустым

Я реализовал некоторые небольшие функции, используя lodash для тестирования в коллекциях.

Мои главные пожелания - что мне нужно сделать асинхронным для этого процесса? Пока я просто вызываю функции как есть. Поскольку я довольно новичок в nodeJ и особенно с точки зрения наилучшей практики корпоративного окружения, я хотел бы узнать мнение более опытных пользователей?

Должны ли обработчики пользовательских ошибок, реализующие бизнес-логику, быть асинхронными или нет никаких преимуществ?

1 ответ

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

Если вы используете expressjs или подобное, вы должны создать своего рода "фильтр" перед запросом, что-то вроде:

function validator(req, res, next){
    //my validation code
    next();
}

app.get('/my/endpoint', validator, function (req, res) {
  req.send();
});
Другие вопросы по тегам