การจัดการข้อผิดพลาดใน Express.js: กลยุทธ์ที่มีประสิทธิภาพและข้อความตอบกลับ

ในระหว่างการพัฒนาแอปพลิเคชัน การจัดการข้อผิดพลาดเป็นสิ่งสำคัญเพื่อให้แน่ใจว่าผู้ใช้จะได้รับประสบการณ์ที่ราบรื่นและลดปัญหาที่ไม่คาดคิด ใน Express.js สภาพแวดล้อม คุณมีหลายวิธีในการจัดการกับข้อผิดพลาดและจัดเตรียมข้อความตอบกลับที่เหมาะสมแก่ผู้ใช้ นี่คือคำแนะนำเกี่ยวกับวิธีการบรรลุเป้าหมายนี้:

ใช้ Middleware สำหรับการจัดการข้อผิดพลาดส่วนกลาง

สร้างการจัดการข้อผิดพลาดส่วนกลาง middleware โดยเพิ่มรหัสต่อไปนี้ที่ส่วนท้ายของไฟล์ app.js หรือไฟล์หลักของ Express.js แอปพลิเคชัน ของคุณ

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

การจัดการข้อผิดพลาดสำหรับเฉพาะ Route

ในบาง route คุณสามารถใช้ try- catch บล็อกเพื่อตรวจจับข้อผิดพลาดและจัดเตรียมข้อความตอบกลับที่เหมาะสม

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

การใช้ Centralized Error Middleware

สร้างข้อผิดพลาดแบบรวมศูนย์ middleware เพื่อจัดการข้อผิดพลาดที่เกิดจากไฟล์ 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');  
});  

การจัดการข้อผิดพลาดแบบอะซิงโครนัส

ในกรณีของการจัดการแบบอะซิงโครนัส ให้ใช้ next วิธีส่งข้อผิดพลาดไปยังการจัดการข้อผิดพลาด middleware ร่วม

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

 

บทสรุป

การจัดการข้อผิดพลาดเป็นส่วนสำคัญของ Express.js การพัฒนาแอปพลิเคชัน ด้วยการใช้ middleware จัดการข้อผิดพลาดเฉพาะ และให้ข้อความตอบกลับที่เหมาะสม คุณสามารถสร้างประสบการณ์การใช้งานแอปพลิเคชันที่ราบรื่นและเชื่อถือได้สำหรับผู้ใช้ของคุณ