Latihan 1 dari materi Error Handling di API — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Buat error handler global untuk semua route. Route GET /users/:id di kode awal sudah melempar error 404 dengan throw (err.status = 404, err.code = "NOT_FOUND", pesan "User not found"), biarkan.
- Isi
app.use((err, req, res, next) => { ... }) yang sudah ada di bawah route. Tulis keempat parameternya: Express mengenali error handler dari empat parameter itu.
- Ambil status dari error-nya:
const status = err.status || 500;.
- Ambil kodenya:
const code = err.code || "INTERNAL_ERROR";.
- Pesannya
err.message untuk 4xx, tapi "Something went wrong" untuk 500, supaya detail bug gak bocor. Jangan kirim err.stack.
- Jawab
res.status(status).json({ error: { code, message } });.
Untuk GET /users/1, jawabannya 404 dengan {"error": {"code": "NOT_FOUND", "message": "User not found"}}. Error tak terduga dijawab 500 dengan {"error": {"code": "INTERNAL_ERROR", "message": "Something went wrong"}}.
Tester-nya mengirim GET /users/1 dan mengecek jawabannya 404. Kodemu juga dibaca: app.use( dengan empat parameter (err, req, res, next), status dengan cadangan err.status || 500, kode dengan cadangan err.code || "INTERNAL_ERROR", pesan "Something went wrong", dan bentuk { error: { code, message } }.