Cykl życia żądania to precyzyjna sekwencja komponentów, przez które przechodzi żądanie w NestJS — middleware, guards, interceptors, pipes, handler, a następnie ponownie interceptors i exception filters w przypadku błędów. Znanie dokładnej kolejności jest kluczowe do zrozumienia kiedy każdy fragment logiki się wykonuje.
Pełna kolejność
Incoming Request
│
▼
1. MIDDLEWARE (Express-style; raw req/res; runs first)
│
▼
2. GUARDS (authorization — return true to continue, false/throw to block)
│
▼
3. INTERCEPTORS (pre) (logic BEFORE the handler — start timing, etc.)
│
▼
4. PIPES (validate/transform the handler's arguments — DTO validation)
│
▼
5. ROUTE HANDLER (your controller method runs)
│
▼
6. INTERCEPTORS (post) (logic AFTER the handler — transform the response)
│
▼
Response
✗ If an exception is thrown ANYWHERE above →
7. EXCEPTION FILTERS (catch it and format the error response)
