Lompat ke konten utama
←

Backend Node.js Dasar: Rute, Middleware, dan Pengujian

Pelajaran 7 dari 16

Middleware: pencatat, penangkap galat, dan token

Middleware: lapisan di sekitar handler

Setelah pelajaran ini kamu bisa menulis middleware yang meneruskan, menghentikan, atau mengubah request dan respons, lalu menyusun beberapa middleware menjadi satu rantai dengan urutan yang benar.

±13 menitDiperiksa 23 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

Beberapa pekerjaan berlaku untuk hampir semua rute: mencatat permintaan, memeriksa token, menambah header keamanan, menangkap galat. Menulisnya di setiap handler membuat kode berulang dan mudah terlewat, sehingga pekerjaan itu dipisah menjadi lapisan bernama middleware. Dokumentasi Express mendefinisikan middleware sebagai fungsi yang punya akses ke request, response, dan fungsi next; ia boleh menjalankan kode, mengubah request dan response, mengakhiri siklus request–respons, atau memanggil next untuk menyerahkan kendali. Middleware yang tidak mengakhiri siklus wajib memanggil next, kalau tidak permintaan menggantung.

// Express
app.use((req, res, next) => {
  res.setHeader("X-Content-Type-Options", "nosniff");
  next();
});

// Model kelas ini: menerima req dan next, mengembalikan respons
function nosniff(req, next) {
  const res = next(req);
  return { ...res, headers: { ...res.headers, "x-content-type-options": "nosniff" } };
}

Di kelas ini middleware berbentuk fungsi (req, next) yang mengembalikan respons. Meneruskan berarti return next(req); menghentikan berarti mengembalikan respons sendiri tanpa memanggil next; mengubah request berarti memanggil next dengan salinan req yang ditambah field; mengubah respons berarti mengolah hasil next sebelum mengembalikannya. Header nosniff di contoh berasal dari OWASP REST Security Cheat Sheet, yang memintanya di respons API supaya peramban tidak menebak jenis isi.

Urutan pemasangan menentukan urutan jalan: Express menyatakan middleware yang dimuat lebih dulu dijalankan lebih dulu. Middleware pertama membungkus semua lapisan sesudahnya seperti kulit bawang, sehingga ia masuk paling awal dan keluar paling akhir.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Aplikasi Express memasang rute dan middleware dengan urutan di bawah. Aplikasi kasir mengirim GET /produk. Apakah catatPermintaan berjalan?

app.get("/produk", (req, res) => res.json(daftarProduk()));
app.use(catatPermintaan);
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 2 lagi