Xử Lý Lỗi trong Express.js: Chiến lược Hiệu quả và Thông báo Phản hồi

Trong quá trình phát triển ứng dụng, việc xử lý lỗi là một phần quan trọng để đảm bảo trải nghiệm người dùng suôn sẻ và hạn chế các vấn đề không mong muốn. Trong môi trường Express.js, bạn có nhiều cách để xử lý lỗi và cung cấp các thông báo phản hồi thích hợp cho người dùng. Dưới đây là một hướng dẫn về cách thực hiện điều này:

Sử Dụng Middleware Để Xử Lý Lỗi Toàn Cục

Tạo một middleware xử lý lỗi toàn cục bằng cách thêm mã sau vào cuối tệp app.js hoặc tệp chính của ứng dụng Express.js.

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

Xử Lý Lỗi cho Các Route Cụ Thể

Trong Route cụ thể, bạn có thể sử dụng khối try-catch để bắt các lỗi và cung cấp thông báo phản hồi thích hợp.

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!');
  }
});

Sử Dụng Middleware Bắt Lỗi Trung Tâm

Tạo một middleware bắt lỗi để xử lý các lỗi xuất phát từ các Route khác nhau.

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');
});

Xử Lý Lỗi Không Đồng Bộ

Trong trường hợp xử lý không đồng bộ, hãy sử dụng phương thức next để chuyển lỗi cho middleware xử lý lỗi toàn cục.

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

 

Kết Luận

Việc xử lý lỗi là một phần không thể thiếu trong quá trình phát triển ứng dụng Express.js. Bằng cách sử dụng middleware, xử lý các lỗi cụ thể và cung cấp thông báo phản hồi thích hợp, bạn có thể tạo ra trải nghiệm ứng dụng mượt mà và đáng tin cậy cho người dùng của mình.