TGViewer
Node.js Backend | YeaHub Node.js Backend | YeaHub @yeahub_node_backend · 465 subscribers
Post #388 211
😋 Жизненный цикл запроса в Nest.js

Nest.js обмазан синтаксическим сахаром: пишешь @Controller, @Get — и всё работает. Но под капотом у каждого запроса есть целая цепочка этапов. Давай разберёмся, кто первый встречает твой запрос, а кто последний

Вопрос частый на собесах, рекомендую внимательно прочитать 😇

💐 Middleware
Самый первый уровень. Тут можно переписать req, добавить хедеры, логировать. По сути — «до Nest-а». Работают так же, как в Express/Fastify

😱 Guard’ы
Самые первые на пути. Проверяют, можно ли вообще пропустить запрос дальше (авторизация, роли, доступ). Если guard сказал «нет» — дальше никто не работает.

☺️ Interceptor (до вызова)
Может подменить данные запроса или добавить что-то в контекст. Часто используют для логирования или кэширования.

😳 Pipe’ы
Проверяют и трансформируют входные данные (валидаторы, касты типов). Например, ParseIntPipe превратит строку id в число. Если данные грязные — кидают ошибку и обрубают цикл.

🐱 Controller
Тут твой метод с бизнес-логикой

🪢 Interceptor (после вызова)
Может преобразовать ответ перед тем, как он уйдёт клиенту (например, обернуть результат в единую структуру ответа) — удобно для фронтов

🟩 Exception Filter
Если где-то в цепочке бахнуло исключение — фильтр красиво его поймает и вернёт красивый ответ вместо 500-ки. Тоже удобно для фронтов, чтобы можно было вывести ошибку

⸻

⚡ Итоговый маршрут:
Middleware → Guard → Interceptor (до) → Pipe → Controller → Interceptor (после) → Exception Filter

🚀 Пост Guru Node.js: @DemetraIT
  • ❤ 3
  • 🏆 3
  • 🔥 2
More from @yeahub_node_backend
  1. Oct 9, 2026#book #начинающие 📚 Node.js: разработка приложений в микросервисной архитектуре с нуля Ос…
  2. Oct 8, 2026#Собес #volume #bind #mount 🤔 Как считать данные, записанные контейнером? 💬 Кратко: Данн…
  3. Oct 7, 2026#Собес #event_loop #main_thread #blocking 🤔 Заблокирует ли бесконечный цикл взаимодействи…
  4. Oct 5, 2026#Собес #event_loop #asynchronous #nodejs 🤔 Что такое process.nextTick() 💬 Кратко: proces…
  5. Oct 2, 2026#podcast #все 📚 Kolesa Podcast Podcast by IT-компания Kolesa Group. В целом он обо всём и…
  6. Oct 1, 2026#Собес #date #timestamp #interval 🤔 Как работать с датами и временными интервалами в SQL?…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →