Express: Routing & Request/Response

Membuat web server dan API dengan Express: route, parameter, query, body JSON, dan status code.

Part 17 dari 24 ± 45 menit Gratis

Express: framework web paling populer

Express adalah framework minimalis untuk Node: ia menyederhanakan routing, membaca body, mengirim JSON, dan menyusun middleware di atas modul http. Kursus ini memakai gaya Express 5 (versi stabil saat ini); sebagian besar kode juga berlaku di Express 4.

npm install express
const express = require('express');
const app = express();

app.use(express.json());           // otomatis membaca body JSON ke req.body

app.get('/', (req, res) => {
  res.send('Halo dari Express!');
});

app.listen(3000, () => console.log('Server di port 3000'));

Route = metode + path + handler

app.get('/produk', (req, res) => { /* daftar */ });
app.get('/produk/:id', (req, res) => { /* satu produk */ });
app.post('/produk', (req, res) => { /* buat */ });
app.put('/produk/:id', (req, res) => { /* ganti */ });
app.patch('/produk/:id', (req, res) => { /* ubah sebagian */ });
app.delete('/produk/:id', (req, res) => { /* hapus */ });

Mengambil data dari permintaan

SumberPropertiContoh URL
Parameter pathreq.params/produk/7 → req.params.id === '7'
Query stringreq.query/produk?kategori=kopi → req.query.kategori
Bodyreq.bodyJSON yang dikirim klien (butuh express.json())
Headerreq.get('x-api-key')

Selalu string: req.params.id adalah '7'. Ubah ke angka dengan Number(req.params.id) sebelum membandingkan dengan ID numerik.

Mengirim respons

res.send('teks atau HTML');
res.json({ pesan: 'ok' });             // JSON + Content-Type otomatis
res.status(201).json(produkBaru);      // atur status lalu kirim
res.sendStatus(204);                   // status saja
res.status(404).json({ error: 'Produk tidak ditemukan' });
res.redirect('/produk');
res.set('X-Contoh', 'nilai');          // header

Contoh: API produk kecil

const produk = [
  { id: 1, nama: 'Kopi', kategori: 'minuman' },
  { id: 2, nama: 'Roti', kategori: 'makanan' },
];

app.get('/produk', (req, res) => {
  const { kategori } = req.query;
  res.json(kategori ? produk.filter((p) => p.kategori === kategori) : produk);
});

app.get('/produk/:id', (req, res) => {
  const p = produk.find((x) => x.id === Number(req.params.id));
  if (!p) return res.status(404).json({ error: 'Produk tidak ditemukan' });
  res.json(p);
});

app.post('/produk', (req, res) => {
  const baru = { id: produk.length + 1, ...req.body };
  produk.push(baru);
  res.status(201).json(baru);
});

Urutan route penting

Express mencocokkan route dari atas ke bawah dan berhenti pada yang pertama merespons. Letakkan route spesifik (/produk/baru) sebelum yang berparameter (/produk/:id).

Express 5: error async otomatis

Di Express 5, handler async yang melempar error atau Promise yang ditolak otomatis diteruskan ke penanganan error — tidak perlu try/catch di setiap route atau pembungkus tambahan seperti di Express 4.

Di KelasIT

require('express') tersedia di simulator dan meniru perilaku Express untuk route, middleware, express.json(), dan Router. Setelah app.listen, kodemu bisa dipanggil lewat fetch('http://localhost:3000/...').

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X