Sejauh ini, aplikasi kita berjalan lancar karena kita mengakses alamat URL yang benar. Tapi, apa yang terjadi jika pengguna mencoba mengakses alamat yang tidak ada? Misalnya, http://localhost:3000/guru
.
Secara default, Express akan menampilkan pesan error sederhana yang tidak terlalu informatif. Dalam kasus yang lebih parah, sebuah error yang tidak ditangani bisa membuat seluruh server kita berhenti bekerja (crash). Tentu kita tidak mau itu terjadi.
Di pelajaran ini, kita akan belajar cara membuat “jaring pengaman” atau penanganan error dasar agar aplikasi kita lebih tangguh.
Bagian 1: Apa Itu Error Handling?
Error Handling adalah proses mengantisipasi dan merespons kesalahan yang mungkin terjadi dalam sebuah aplikasi. Tujuannya adalah agar aplikasi tidak langsung crash, melainkan bisa memberikan respons yang lebih terkontrol dan informatif kepada pengguna.
Di Express, kita bisa membuat middleware khusus untuk menangani error. Middleware adalah sebuah fungsi yang memiliki akses ke objek request, response, dan sebuah fungsi next
untuk melanjutkan ke middleware berikutnya dalam siklus permintaan-respons.
Untuk menangani kasus “Halaman Tidak Ditemukan” atau 404 Not Found, kita akan membuat sebuah middleware yang akan dieksekusi jika tidak ada route lain yang cocok dengan permintaan yang masuk.
Bagian 2: Praktik: Membuat Handler untuk “404 Not Found”
Cara kerja middleware 404 ini sangat logis:
- Sebuah permintaan masuk ke server (misalnya,
GET /asal-ngarang
). - Express akan memeriksa semua route yang sudah kita daftarkan satu per satu.
- Ia memeriksa: Apakah ada yang cocok dengan
app.use('/students', ...)
? Tidak. - Jika setelah semua route diperiksa tidak ada yang cocok, permintaan tersebut akan “jatuh” ke middleware paling akhir yang kita pasang. Inilah yang akan kita jadikan handler 404.
Mari kita implementasikan:
-
Buka File
index.js
: Buka kembali file utama proyek kita disrc/index.js
. -
Tambahkan Kode Handler: Letakkan kode berikut di bagian paling bawah, tepat sebelum baris
app.listen(...)
. Posisi ini sangat penting.// ... kode app.use('/students', studentRouter); yang sudah ada sebelumnya // Middleware untuk menangani 404 Not Found // Handler ini akan menangkap semua request yang tidak cocok dengan route di atasnya app.use((req, res, next) => { res.status(404).send('Maaf, halaman yang Anda cari tidak ditemukan.'); }); // Jalankan server app.listen(port, function () { // ... dan seterusnya​
- Penjelasan Kode:
app.use(...)
: Kita mendaftarkan middleware baru. Karena kita tidak menentukan path (seperti/students
), middleware ini akan berlaku untuk semua permintaan yang berhasil melewatinya.res.status(404)
: Kita secara eksplisit mengatur kode status HTTP menjadi404
, yang artinya “Not Found”..send(...)
: Kita mengirimkan pesan yang lebih ramah kepada pengguna.
- Penjelasan Kode:
- Uji Coba:
- Matikan dan jalankan ulang servermu (
node src/index.js
). - Buka Postman.
- Buat permintaan
GET
ke alamat yang tidak ada, misalnya:http://localhost:3000/guru
atauhttp://localhost:3000/asal-saja
. - Klik Send
- Matikan dan jalankan ulang servermu (
Sekarang, kamu tidak akan lagi melihat halaman error default dari Express. Sebagai gantinya, kamu akan melihat pesan “Maaf, halaman yang Anda cari tidak ditemukan.” di body respons, dan yang terpenting, statusnya adalah 404 Not Found
.
Selamat! Aplikasi backend-mu sekarang selangkah lebih profesional karena sudah bisa menangani salah satu error paling umum dengan baik.