Pipes: Transform & Validasi
Penjelasan
Pipe menjalankan transformasi/validasi terhadap ARGUMEN sebuah handler SEBELUM benar-benar dieksekusi. NestJS punya beberapa pipe bawaan siap pakai: ParseIntPipe (ubah string jadi number, error kalau bukan angka valid), ParseBoolPipe, ValidationPipe (dibahas materi sebelumnya). Pipe custom dibuat dengan mengimplementasikan interface PipeTransform.
Contoh Konsep
import { Controller, Get, Param, ParseIntPipe } from '@nestjs/common';
@Controller('produk')
export class ProdukController {
@Get(':id')
findOne(@Param('id', ParseIntPipe) id: number) { // id OTOMATIS number, bukan string
return `Produk dengan id: ${id}, tipe: ${typeof id}`;
}
}
Praktikum
Buat method findOne(@Param('id', ParseIntPipe) id: number) di ArtikelController yang mengembalikan "Artikel id {id}, tipe data: {typeof id}".
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
ParseIntPipe otomatis merespons 400 Bad Request kalau nilainya TIDAK BISA diubah jadi angka valid (mis. /produk/abc) — kamu tidak perlu menulis pengecekan isNaN() manual, pipe ini menangkap kasus itu sebelum handler-nya dijalankan sama sekali.