Узел Оптимизация промежуточного программного обеспечения обработчика ошибок?
Хей,
Я работаю над активатором на платформе 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();
});