Middleware ใน Express.js: การจัดการคำขอขั้นกลาง

ความรู้เบื้องต้น 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 ช่วยให้คุณสร้างเว็บแอปพลิเคชันที่แข็งแกร่งและปลอดภัยได้อย่างมีประสิทธิภาพ