NestJS Mimarisi: Modules, Guards, Interceptors & Pipes
Node.js dünyasına Spring Boot ve Angular benzeri kurumsal kurallar nizamı getirmek.
Bir havaalanı güvenlik kapısıdır: Guard (Pasaport kontrolü yapar), Pipe (Bavulunuzun ağırlığını tartar ve düzenler), Controller (Uçağa bindirir), Interceptor (Uçuş süresini ve logları kaydeder).
NestJS TypeScript tabanlı kurumsal bir framework'tür. İstek döngüsü sırası: Middleware -> Guard (Auth kontrolü) -> Interceptor (Pre-controller) -> Pipe (Validasyon/Transformasyon: class-validator) -> Controller Handler -> Interceptor (Post-controller / Response mapping) -> Exception Filter.
“Guard yetkilendirme (RBAC/JWT) yapar ve boolean döner. Pipe gelen veriyi doğrular veya dönüştürür (örn: ValidationPipe). Interceptor metodun öncesine/sonrasına girerek caching, logging veya response formatlama (RxJS ile) sağlar.”
@Controller('users')
@UseGuards(JwtAuthGuard)
export class UsersController {
@Post()
@UsePipes(new ValidationPipe({ whitelist: true }))
create(@Body() dto: CreateUserDto) {
return this.usersService.create(dto);
}
}
İş mantığını Controller içine yığmak. Tüm iş mantığı Service katmanında olmalıdır.