Выбор ответа Middle HTTP-сервер, Express, NestJS спрашивают часто обновлено
Порядок обработки запроса в NestJS
Вопрос
В каком порядке NestJS применяет к запросу эти слои?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Middleware → Guards → Interceptors → Pipes → обработчик. Сначала middleware, потом guards решают, пускать ли запрос, затем interceptors (часть «до»), потом pipes валидируют и преобразуют аргументы, и только потом обработчик.
Варианты ответа
- Guards → Middleware → Pipes → Interceptors
- Middleware → Pipes → Guards → Interceptors → обработчик
- Middleware → Guards → Interceptors → Pipes → обработчикправильный ответ
- Interceptors → Guards → Middleware → Pipes → обработчик
Разбор
Сначала middleware, потом guards решают, пускать ли запрос, затем interceptors (часть «до»), потом pipes валидируют и преобразуют аргументы, и только потом обработчик. После него снова interceptors (часть «после»), а исключения ловят exception filters.
- Guards не могут идти до middleware: middleware выполняется на уровне HTTP-адаптера раньше всего.
- Pipes после guards: нет смысла валидировать тело запроса, который не пройдёт авторизацию.
- Interceptors оборачивают обработчик, но после guards.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.