Error Handling ใน ExpressJS

Error Handling ใน ExpressJS หมายถึงวิธีการที่ ExpressJS จัดการกับข้อผิดพลาดที่อาจเกิดขึ้นเมื่อประมวลผลคำขอ HTTP ExpressJS มีระบบจัดการข้อผิดพลาดที่มีประสิทธิภาพซึ่งช่วยให้คุณจัดการกับข้อผิดพลาดได้อย่างง่ายดาย

ExpressJS มี middleware ในตัวที่จัดการกับข้อผิดพลาดทั้งหมดที่อาจเกิดขึ้นเมื่อประมวลผลคำขอ HTTP middleware นี้เรียกว่า errorHandler()

middleware errorHandler() จะถูกเรียกโดย ExpressJS เมื่อใดก็ตามที่พบข้อผิดพลาด middleware นี้จะบันทึกข้อผิดพลาดและส่งคำตอบ HTTP ที่เหมาะสมไปยัง client

คุณสามารถกำหนดค่า middleware errorHandler() เพื่อจัดการกับข้อผิดพลาดในลักษณะต่างๆ ตัวอย่างเช่น คุณสามารถกำหนดค่า middleware errorHandler() เพื่อแสดงข้อความข้อผิดพลาดเฉพาะไปยังผู้ใช้หรือเพื่อส่งรหัสสถานะ HTTP เฉพาะไปยัง client

ต่อไปนี้เป็นตัวอย่างโค้ดที่แสดงวิธีกำหนดค่า middleware errorHandler() เพื่อแสดงข้อความข้อผิดพลาดเฉพาะไปยังผู้ใช้:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const express = require('express');

const app = express();

app.use(express.errorHandler({
message: 'An error occurred'
}));

app.get('/', (req, res) => {
throw new Error('This is an error');
});

app.listen(3000, () => {
console.log('Server started on port 3000');
});

โค้ดนี้จะใช้ middleware errorHandler() เพื่อแสดงข้อความ “An error occurred” ให้กับผู้ใช้เมื่อใดก็ตามที่พบข้อผิดพลาด

คุณยังสามารถกำหนดค่า middleware errorHandler() เพื่อส่งรหัสสถานะ HTTP เฉพาะไปยัง client ได้ ตัวอย่างเช่น โค้ดต่อไปนี้จะกำหนดค่า middleware errorHandler() เพื่อส่งรหัสสถานะ HTTP 500 ไปยัง client เมื่อใดก็ตามที่พบข้อผิดพลาด:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const express = require('express');

const app = express();

app.use(express.errorHandler({
statusCode: 500
}));

app.get('/', (req, res) => {
throw new Error('This is an error');
});

app.listen(3000, () => {
console.log('Server started on port 3000');
});

โค้ดนี้จะใช้ middleware errorHandler() เพื่อส่งรหัสสถานะ HTTP 500 ไปยัง client เมื่อใดก็ตามที่พบข้อผิดพลาด

คุณยังสามารถเขียน middleware ของคุณเองเพื่อจัดการกับข้อผิดพลาดได้ ในการทำเช่นนี้ ให้สร้างฟังก์ชันที่ตรงตามข้อกำหนดของ middleware และเรียกใช้ฟังก์ชัน app.use() เพื่อกำหนดเส้นทางการรับส่งข้อมูลไปยัง middleware ของคุณ

เมื่อคุณเขียน middleware ของคุณเองเพื่อจัดการกับข้อผิดพลาด คุณควรให้ความสนใจเป็นพิเศษกับ:

  • บันทึกข้อผิดพลาด: คุณควรบันทึกข้อผิดพลาดทั้งหมดที่พบโดย middleware ของคุณ
  • ส่งคำตอบ HTTP ที่เหมาะสม: คุณควรส่งคำตอบ HTTP ที่เหมาะสมไปยัง client เมื่อพบข้อผิดพลาด
  • แสดงข้อความข้อผิดพลาดที่เกี่ยวข้อง: คุณควรแสดงข้อความข้อผิดพลาดที่เกี่ยวข้องให้กับผู้ใช้เมื่อพบข้อผิดพลาด

Error Handling เป็นสิ่งสำคัญมากสำหรับแอปพลิเคชันทุกแอปพลิเคชัน ExpressJS มีระบบจัดการข้อผิดพลาดที่มีประสิทธิภาพซึ่งช่วยให้คุณจัดการกับข้อผิดพลาดได้อย่างง่ายดาย