Study
NestJS

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}".

Editor Latihan

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.