Penanganan Kesalahan dalam Express.js: Strategi Efektif dan Pesan Respons

Selama pengembangan aplikasi, penanganan kesalahan merupakan aspek penting untuk memastikan pengalaman pengguna yang lancar dan mengurangi masalah yang tidak terduga. Di Express.js lingkungan, Anda memiliki beberapa cara untuk menangani kesalahan dan memberikan pesan respons yang sesuai kepada pengguna. Berikut panduan tentang cara mencapainya:

Menggunakan Middleware untuk Penanganan Kesalahan Global

Buat penanganan error global middleware dengan menambahkan kode berikut di akhir app.js atau file utama Express.js aplikasi Anda.

app.use((err, req, res, next) => {  
  console.error(err.stack);  
  res.status(500).send('Something went wrong!');  
});  

Menangani Kesalahan untuk Spesifik Route

Secara khusus route, Anda dapat menggunakan try- catch blok untuk menangkap kesalahan dan memberikan pesan respons yang sesuai.

app.get('/profile/:id', async(req, res) => {  
  try {  
    const user = await getUserById(req.params.id);  
    res.json(user);  
  } catch(error) {  
    res.status(404).send('User not found!');  
  }  
});  

Menggunakan Kesalahan Terpusat Middleware

Buat error terpusat middleware untuk menangani error yang berasal dari berbagai route.

app.use((req, res, next) => {  
  const error = new Error('Not found');  
  error.status = 404;  
  next(error);  
});  
  
app.use((err, req, res, next) => {  
  res.status(err.status || 500);  
  res.send(err.message || 'Something went wrong');  
});  

Menangani Kesalahan Asinkron

Dalam kasus penanganan asinkron, gunakan next metode untuk meneruskan kesalahan ke penanganan kesalahan global middleware.

app.get('/data',(req, res, next) => {  
  fetchDataFromDatabase((err, data) => {  
    if(err) {  
      return next(err);  
    }  
    res.json(data);  
  });  
});  

 

Kesimpulan

Penanganan kesalahan merupakan bagian integral dari Express.js pengembangan aplikasi. Dengan memanfaatkan middleware, menangani kesalahan tertentu, dan memberikan pesan respons yang sesuai, Anda dapat menciptakan pengalaman aplikasi yang lancar dan andal bagi pengguna Anda.