การกำหนดเส้นทางและมิดเดิลแวร์เป็นสองแนวคิดที่สำคัญใน Node.js และเฟรมเวิร์ก Express สำหรับการสร้างเว็บแอปพลิเคชัน
เส้นทาง:
- การกำหนดเส้นทางเป็นกระบวนการกำหนดวิธีจัดการกับคำขอจากลูกค้าและตอบสนองด้วยทรัพยากรที่สอดคล้องกันบนเซิร์ฟเวอร์
- ใน Express เราสามารถกำหนดเส้นทางได้โดยระบุเมธอด HTTP (GET, POST, PUT, DELETE เป็นต้น) และเส้นทาง URL ที่สอดคล้องกัน
- แต่ละเส้นทางสามารถมีฟังก์ชันตัวจัดการตั้งแต่หนึ่งฟังก์ชันขึ้นไปเพื่อดำเนินการต่างๆ เช่น การประมวลผลคำขอ การเข้าถึงฐานข้อมูล และส่งการตอบกลับไปยังไคลเอนต์
มิดเดิลแวร์:
- มิดเดิลแวร์คือฟังก์ชันที่ดำเนินการตามลำดับก่อนที่คำขอจะไปถึงตัวจัดการเส้นทางสุดท้าย
- ใช้เพื่อดำเนินการฟังก์ชันทั่วไปและจัดการงานระดับกลาง เช่น การพิสูจน์ตัวตน การบันทึก การจัดการข้อผิดพลาด ฯลฯ
- มิดเดิลแวร์สามารถนำไปใช้กับแอปพลิเคชันทั้งหมดหรือระบุสำหรับเส้นทางเฉพาะได้
- มิดเดิลแวร์แต่ละตัวได้รับพารามิเตอร์ req (คำขอ) และ res (การตอบสนอง) และสามารถดำเนินการประมวลผล ส่งคำขอไปยังมิดเดิลแวร์ถัดไป หรือสิ้นสุดการประมวลผลโดยส่งการตอบกลับไปยังไคลเอนต์
ตัวอย่างการรวม Routing และ Middleware ใน Express:
const express = require('express');
const app = express();
// Middleware
const loggerMiddleware = (req, res, next) => {
console.log('A new request has arrived!');
next();
};
// Apply middleware to the entire application
app.use(loggerMiddleware);
// Main route
app.get('/', (req, res) => {
res.send('Welcome to the homepage!');
});
// Another route
app.get('/about', (req, res) => {
res.send('This is the about page!');
});
// Start the server
app.listen(3000, () => {
console.log('Server is listening on port 3000...');
});
ในตัวอย่างนี้ เราได้กำหนดมิดเดิลแวร์แบบกำหนดเองloggerMiddlewareเพื่อบันทึกทุกคำขอใหม่ที่มาถึงเซิร์ฟเวอร์ มิดเดิลแวร์นี้ใช้กับแอปพลิเคชันทั้งหมดโดยใช้app.use()เมธอด จากนั้น เราได้กำหนดสองเส้นทาง เส้นทางหนึ่งสำหรับหน้าหลัก ( '/') และอีกเส้นทางหนึ่งสำหรับหน้าเกี่ยวกับ ( '/about') สุดท้าย เราเริ่มเซิร์ฟเวอร์และฟังที่พอร์ต 3000
มิดเดิลแวร์loggerMiddlewareจะถูกดำเนินการสำหรับทุกคำขอ บันทึกข้อความไปยังคอนโซลก่อนที่จะส่งคำขอไปยังตัวจัดการเส้นทางหรือมิดเดิลแวร์ที่เกี่ยวข้องตามลำดับ
การรวมกันของการกำหนดเส้นทางและมิดเดิลแวร์นี้ช่วยให้เราสามารถจัดการคำขอต่างๆ และทำงานทั่วไปได้อย่างมีประสิทธิภาพในแอปพลิเคชัน Express