ความรู้เบื้องต้น Middleware ใน Express.js
Middleware in Express.js เป็นแนวคิดอันทรงพลังที่ให้คุณเรียกใช้ฟังก์ชันตามลำดับเฉพาะในระหว่างวงจรชีวิตการตอบกลับคำขอ ฟังก์ชันเหล่านี้สามารถทำงานต่างๆ ได้ เช่น การพิสูจน์ตัวตน การบันทึก การตรวจสอบความถูกต้องของข้อมูล และอื่นๆ Middleware ฟังก์ชันถูกดำเนินการตามลำดับ และแต่ละฟังก์ชัน middleware มีสิทธิ์เข้าถึง request
และ response
ออบเจกต์ เช่นเดียวกับ next
ฟังก์ชัน ซึ่งส่งผ่านการควบคุมไปยังฟังก์ชันถัดไป middleware ในสแต็ก
ทำไมต้องใช้ Middleware ?
Middleware เป็นสิ่งจำเป็นสำหรับการปรับฟังก์ชันการทำงานของแอปพลิเคชันของคุณให้เป็นโมดูลและเพิ่มความสามารถในการบำรุงรักษา ช่วยให้คุณสามารถรักษาตัวจัดการเส้นทางของคุณให้สะอาดและจดจ่อกับงานเฉพาะ ในขณะที่ลดภาระความกังวลทั่วไปหรือตัดปัญหาไปยัง middleware ฟังก์ชันต่างๆ การแยกข้อกังวลนี้ส่งเสริมการนำโค้ดกลับมาใช้ใหม่และทำให้โค้ดเบสของคุณเป็นระเบียบมากขึ้น
การสร้างและใช้งาน Middleware
middleware ใน การสร้าง คุณต้อง กำหนด Express.js ฟังก์ชันที่รับพารามิเตอร์สามตัว: request
, response
และ next
ต่อไปนี้คือตัวอย่างพื้นฐานที่ middleware บันทึกแต่ละคำขอที่เข้ามา:
const logMiddleware =(req, res, next) => {
console.log(`Received a ${req.method} request at ${req.url}`);
next(); // Pass control to the next middleware
};
app.use(logMiddleware);
คุณสามารถใช้ app.use()
วิธีนี้เพื่อใช้ middleware ทั่วโลกกับทุกเส้นทางหรือเลือกใช้เฉพาะเส้นทางก็ได้
ลำดับ Middleware การดำเนินการ
Middleware ฟังก์ชันจะดำเนินการตามลำดับที่กำหนดไว้โดย app.use()
ใช้
ตัวอย่างเช่น:
app.use(middleware1);
app.use(middleware2);
ในกรณีนี้ middleware1
จะดำเนินการก่อน middleware2
สำหรับคำขอที่เข้ามาทั้งหมด
การจัดการข้อผิดพลาดใน Middleware
หากเกิดข้อผิดพลาดภายใน middleware ฟังก์ชัน คุณสามารถส่งต่อข้อผิดพลาดไปยัง next
ฟังก์ชัน และ Express.js จะข้ามไปที่การจัดการข้อผิดพลาดโดย middleware อัตโนมัติ
นี่คือตัวอย่าง:
const errorMiddleware =(err, req, res, next) => {
console.error(err);
res.status(500).send('Something went wrong!');
};
app.use(errorMiddleware);
ใช้ Middleware สำหรับการตรวจสอบสิทธิ์
Middleware มักใช้สำหรับการดำเนินการรับรองความถูกต้องและการให้สิทธิ์ในเว็บแอปพลิเคชัน ตัวอย่างเช่น คุณสามารถสร้าง middleware ฟังก์ชันที่ตรวจสอบว่าผู้ใช้ได้รับการรับรองความถูกต้องหรือไม่ก่อนที่จะอนุญาตให้เข้าถึงบางเส้นทาง:
const authenticateMiddleware =(req, res, next) => {
if(req.isAuthenticated()) {
return next(); // User is authenticated, proceed to the next middleware
}
res.redirect('/login'); // User is not authenticated, redirect to login page
};
app.get('/profile', authenticateMiddleware,(req, res) => {
res.send('Welcome to your profile!');
});
บทสรุป
Middleware in Express.js เป็นเครื่องมือสำคัญสำหรับการจัดการและปรับปรุงฟังก์ชันการทำงานของเว็บแอปพลิเคชันของคุณ ด้วยการสร้าง middleware ฟังก์ชันที่ใช้ซ้ำได้ คุณสามารถปรับปรุงโค้ดของคุณ ปรับข้อกังวลให้เป็นโมดูล และปรับปรุงความสามารถในการบำรุงรักษาโดยรวมของโครงการของคุณ ตั้งแต่การจัดการการยืนยันตัวตนไปจนถึงการบันทึกและการจัดการข้อผิดพลาด middleware ช่วยให้คุณสร้างเว็บแอปพลิเคชันที่แข็งแกร่งและปลอดภัยได้อย่างมีประสิทธิภาพ