Как перехватить запрос node.js express

В выражении я определил некоторые маршруты

app.post("/api/v1/client", Client.create);
app.get("/api/v1/client", Client.get);
...

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

Ответы

Ответ 1

Вы можете сделать то, что вам нужно, несколькими способами.

Это приведет к установке промежуточного программного обеспечения, которое будет использоваться перед удалением маршрутизатора. Убедитесь, что маршрутизатор добавлен с помощью app.use() после. Приоритет промежуточного уровня важен.

app.use(function(req, res, next) {
  // Put some preprocessing here.
  next();
});
app.use(app.router);

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

var someFunction = function(req, res, next) {
  // Put the preprocessing here.
  next();
};
app.post("/api/v1/client", someFunction, Client.create);

Это сделает шаг предварительной обработки для этого маршрута.

Примечание. Убедитесь, что ваши вызовы app.use() находятся перед определениями маршрута. Определение маршрута автоматически добавляет app.router в цепочку промежуточного программного обеспечения, что может привести к тому, что оно будет опережать заданное пользователем промежуточное программное обеспечение.