NestJS
Pengenalan NestJS
Apa itu NestJS, cara instalasi lewat Nest CLI, dan cara menjalankan project pertamamu.
Modules
Unit pengelompokan kode terkecil di NestJS lewat decorator @Module.
Controllers
Menangani HTTP request lewat class ber-decorator @Controller, method-nya ditandai @Get/@Post dst.
Providers & Services
Logika bisnis dipisah ke class Service ber-decorator @Injectable, di-inject ke Controller lewat constructor.
Route Parameters & Query: @Param, @Query
Mengambil parameter URL dan query string lewat decorator parameter method.
Request Body: @Body dan DTO
Membaca body request lewat decorator @Body, ditipekan lewat class DTO (Data Transfer Object).
DTO & Validation Pipe
Validasi otomatis DTO lewat decorator class-validator dan ValidationPipe global.
Middleware di NestJS
Kode yang berjalan sebelum request sampai ke route handler, ditandai class NestMiddleware.
Guards
Menentukan boleh/tidaknya request lanjut ke handler, biasa dipakai untuk autentikasi & otorisasi.
Pipes: Transform & Validasi
Mengubah atau memvalidasi data sebelum masuk ke handler lewat Pipe bawaan atau custom.
Interceptors
Membungkus eksekusi handler untuk transform response, logging waktu eksekusi, atau caching.
Exception Filters
Menangani error secara terpusat dan konsisten lewat class ExceptionFilter custom.
Database Integration: TypeORM Dasar
Menghubungkan NestJS ke database relasional lewat TypeORM, ORM paling umum dipakai bareng NestJS.
CRUD REST API Lengkap
Menggabungkan Controller, Service, DTO, dan Repository jadi endpoint CRUD lengkap.
Custom Decorators
Membuat decorator sendiri untuk mengekstrak data yang berulang dipakai, mis. user yang sedang login.
Config Module
Mengelola environment variable secara terstruktur lewat @nestjs/config, alternatif dotenv manual.
Dependency Injection Scope
Mengatur berapa lama sebuah Provider hidup: singleton (default), per-request, atau per-instance baru.
Testing Dasar dengan Jest
NestJS sudah dikonfigurasi Jest bawaan sejak awal project, unit test dan e2e test.
Tugas Akhir
Latihan akhir menggabungkan Module, Controller, Service, DTO, dan ValidationPipe dalam satu REST API Catatan.