Study
Express.js

Validasi Input

Penjelasan

Express TIDAK punya sistem validasi bawaan (beda dengan Laravel/CakePHP) — validasi manual bisa ditulis langsung di handler, atau pakai library populer express-validator yang menyediakan middleware validasi deklaratif mirip Symfony Constraints.

Contoh Konsep

// npm install express-validator
const { body, validationResult } = require('express-validator');

app.post('/produk',
    body('nama').notEmpty().withMessage('Nama wajib diisi'),
    body('harga').isNumeric().withMessage('Harga harus angka'),
    (req, res) => {
        const errors = validationResult(req);
        if (!errors.isEmpty()) {
            return res.status(422).json({ errors: errors.array() });
        }

        res.json({ pesan: 'Data valid, produk tersimpan' });
    }
);

Praktikum

Buat route POST /artikel dengan validasi manual (tanpa library): kalau req.body.judul kosong atau panjangnya kurang dari 5 karakter, respons res.status(422).json({error: 'Judul minimal 5 karakter'}), kalau valid respons sukses.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

express-validator dipakai sebagai RANGKAIAN MIDDLEWARE (body('field').aturan()...) yang didaftarkan SEBELUM handler utama di route yang sama — hasilnya dikumpulkan otomatis, tinggal dicek lewat validationResult(req) di handler, tidak langsung menghentikan request seperti $request->validate() Laravel.