Lompat ke konten utama
←

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

Pelajaran 8 dari 16

Middleware: pencatat, penangkap galat, dan token

Pencatat dan penangkap galat

Setelah pelajaran ini kamu bisa menulis middleware pencatat yang mengukur lama proses dengan jam tiruan dan middleware penangkap galat yang menjawab galat tak terduga dengan 500 umum tanpa membocorkan rinciannya.

±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

Middleware pencatat menulis satu catatan untuk setiap permintaan. OWASP Logging Cheat Sheet meminta setiap catatan menjawab kapan, di mana, siapa, dan apa; untuk aplikasi web itu mencakup metode dan URL, kode status, serta pengenal interaksi yang mengikat semua catatan dari satu permintaan. Lama proses diukur dengan membaca jam sebelum dan sesudah next. Di Node.js jam itu Date.now() atau performance.now(); di latihan, jam adalah fungsi tiruan yang mengembalikan angka milidetik yang sudah ditetapkan, sehingga hasilnya sama setiap kali dijalankan.

Middleware penangkap galat membungkus next dengan try dan catch. Dokumentasi Express menjelaskan perilaku penangan galat bawaannya: status respons diambil dari err.status, dan bila nilainya di luar 4xx atau 5xx dipakai 500; jejak tumpukan tidak dikirim di lingkungan produksi. OWASP Error Handling Cheat Sheet meminta galat tak terduga dijawab dengan respons umum, sedangkan rinciannya dicatat di server untuk diselidiki. Galat yang disengaja, seperti produk yang tidak ada, dibawa kelas turunan Error yang menyimpan status (MDN, Custom error types).

class GalatHttp extends Error {
  constructor(status, title, detail) {
    super(detail);
    this.status = status;
    this.title = title;
    this.detail = detail;
  }
}

// di repositori resep:
throw new GalatHttp(404, "Not Found", "Resep 31 tidak ada");

Latihan

0/3 lulus

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

Latihan 3 dari 3

catat menambah catatan ke log sesudah next kembali, dan tangkapGalat mengubah galat menjadi respons 500. Handler laporan melempar TypeError. Susunan mana yang menghasilkan catatan berstatus 500 di log?

const A = susun([tangkapGalat, catat], handlerLaporan);
const B = susun([catat, tangkapGalat], handlerLaporan);
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 1 lagi