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