ExpressJS - Penanganan Error

Penanganan error di Express dilakukan menggunakan middleware. Tetapi middleware ini memiliki properti khusus. Penanganan kesalahan middleware didefinisikan dengan cara yang sama seperti fungsi middleware lainnya, kecuali fungsi penanganan kesalahanMUST have four arguments bukannya tiga - err, req, res, next. Misalnya, untuk mengirim tanggapan atas kesalahan apa pun, kita dapat menggunakan -

app.use(function(err, req, res, next) {
   console.error(err.stack);
   res.status(500).send('Something broke!');
});

Sampai sekarang kami menangani kesalahan di rute itu sendiri. Penanganan kesalahan middleware memungkinkan kita untuk memisahkan logika kesalahan dan mengirim tanggapan yang sesuai. Metode next () yang kita diskusikan di middleware membawa kita ke selanjutnyamiddleware/route handler.

Untuk penanganan kesalahan, kami memiliki file next(err)fungsi. Panggilan ke fungsi ini melompati semua middleware dan mencocokkan kita dengan penangan kesalahan berikutnya untuk rute tersebut. Mari kita pahami ini melalui sebuah contoh.

var express = require('express');
var app = express();

app.get('/', function(req, res){
   //Create an error and pass it to the next function
   var err = new Error("Something went wrong");
   next(err);
});

/*
 * other route handlers and middleware here
 * ....
 */

//An error handling middleware
app.use(function(err, req, res, next) {
   res.status(500);
   res.send("Oops, something went wrong.")
});

app.listen(3000);

Middleware penanganan kesalahan ini dapat ditempatkan secara strategis setelah rute atau berisi kondisi untuk mendeteksi jenis kesalahan dan merespons klien yang sesuai. Program di atas akan menampilkan keluaran sebagai berikut.