Route Parameters & Query: @Param, @Query
Penjelasan
NestJS mengambil data request lewat DECORATOR PARAMETER method, bukan objek req seperti Express: @Param('nama') untuk parameter route dinamis (path :id), dan @Query('nama') untuk query string. Bisa juga dipakai TANPA argumen (@Param() saja) untuk mendapat semua parameter sekaligus sebagai objek.
Contoh Konsep
import { Controller, Get, Param, Query } from '@nestjs/common';
@Controller('produk')
export class ProdukController {
@Get(':id')
findOne(@Param('id') id: string) {
return `Menampilkan produk dengan id: ${id}`;
}
@Get()
findAll(@Query('kategori') kategori: string) {
return `Kategori dipilih: ${kategori || 'semua'}`;
}
}
Praktikum
Buat method show(@Param('slug') slug: string) di ArtikelController yang mengembalikan "Artikel: {slug}". Buat juga method cari(@Query('q') q: string) yang mengembalikan "Mencari: {q}".
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Nama string di dalam @Param('id')/@Query('q') HARUS PERSIS SAMA dengan nama placeholder di path route (:id) atau nama key query string (?q=...) — kalau beda, hasilnya undefined walau parameter/query sebenarnya terkirim dengan nama lain.