Добавление объекта req.params в промежуточное ПО для обработки ошибок - PullRequest
0 голосов
/ 16 мая 2018

Какой-то контекст перед моим вопросом:

  1. В настоящее время я создаю сервер в Node, Express, MongoDb + Mongoose
  2. Я использую PassportJS для аутентификации

Каждый мой маршрут защищен промежуточным ПО, подтверждающим, что запрос аутентифицирован. Кроме того, у меня есть различные уровни прав доступа (например, is_regular_user, is_account_approved, is_team_admin, is_firm_admin), для которых я также использую промежуточное программное обеспечение.

В случае сбоя одной из этих проверок промежуточного программного обеспечения я перенаправляю на общий обработчик ошибок 400. Тем не менее, я хотел бы передать некоторую информацию этому обработчику ошибок, чтобы я мог вернуть клиенту собственное сообщение об ошибке (чтобы я мог сказать им, к кому обратиться в моей компании за какой ошибкой).

Я подумываю добавить сообщение (указывающее, какая проверка промежуточного программного обеспечения завершилась неудачно) в объект req.params Express, который может проверить универсальный обработчик ошибок, а затем использовать для печати настраиваемого сообщения об ошибке. Имеет ли этот подход смысл? Если нет, то как лучше всего это сделать?

1 Ответ

0 голосов
/ 16 мая 2018

это может быть что-то вроде этого

// handle
authMiddleware = (req, res, next) => {
 const error = doAuthLogic(req);
 if(error){
   res.send({ error: e});
   return;
 }
 next(req, res);
}
app.get('/api', authMiddleware, myController );

и в doAuthLogic вы можете передать всю необходимую информацию

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