Выбор ответа Middle HTTP-сервер, Express, NestJS спрашивают часто обновлено

Порядок обработки запроса в NestJS

Вопрос

В каком порядке NestJS применяет к запросу эти слои?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Middleware → Guards → Interceptors → Pipes → обработчик. Сначала middleware, потом guards решают, пускать ли запрос, затем interceptors (часть «до»), потом pipes валидируют и преобразуют аргументы, и только потом обработчик.

Варианты ответа

  1. Guards → Middleware → Pipes → Interceptors
  2. Middleware → Pipes → Guards → Interceptors → обработчик
  3. Middleware → Guards → Interceptors → Pipes → обработчикправильный ответ
  4. Interceptors → Guards → Middleware → Pipes → обработчик

Разбор

Сначала middleware, потом guards решают, пускать ли запрос, затем interceptors (часть «до»), потом pipes валидируют и преобразуют аргументы, и только потом обработчик. После него снова interceptors (часть «после»), а исключения ловят exception filters.

  • Guards не могут идти до middleware: middleware выполняется на уровне HTTP-адаптера раньше всего.
  • Pipes после guards: нет смысла валидировать тело запроса, который не пройдёт авторизацию.
  • Interceptors оборачивают обработчик, но после guards.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.