Routing และ middleware เป็นสองแนวคิดที่สำคัญใน Node.js และ Express เฟรมเวิร์กสำหรับการสร้างเว็บแอปพลิเคชัน
Routing:
- Routing เป็นกระบวนการกำหนดวิธีจัดการคำขอจากลูกค้าและตอบสนองด้วยทรัพยากรที่สอดคล้องกันบนเซิร์ฟเวอร์
- ใน Express เราสามารถกำหนดเส้นทางโดยระบุเมธอด HTTP(GET, POST, PUT, DELETE ฯลฯ) และเส้นทาง URL ที่เกี่ยวข้อง
- แต่ละเส้นทางสามารถมีฟังก์ชันตัวจัดการตั้งแต่หนึ่งฟังก์ชันขึ้นไปเพื่อดำเนินการต่างๆ เช่น การประมวลผลคำขอ การเข้าถึงฐานข้อมูล และส่งการตอบกลับไปยังไคลเอนต์
Middleware:
- Middleware เป็นฟังก์ชันที่ดำเนินการตามลำดับก่อนที่คำขอจะไปถึงตัวจัดการเส้นทางสุดท้าย
- ใช้เพื่อดำเนินการฟังก์ชันทั่วไปและจัดการงานระดับกลาง เช่น การพิสูจน์ตัวตน การบันทึก การจัดการข้อผิดพลาด ฯลฯ
- Middleware ใช้ได้กับทั้งแอปพลิเคชันหรือระบุเฉพาะเส้นทางก็ได้
- แต่ละรายการ middleware ได้รับพารามิเตอร์ req(คำขอ) และ res(การตอบสนอง) และสามารถดำเนินการประมวลผล ส่งคำขอไปยังรายการถัดไป middleware หรือสิ้นสุดการประมวลผลโดยส่งการตอบกลับไปยังไคลเอนต์
ตัวอย่างการรวม 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...');
});
ในตัวอย่างนี้ เราได้กำหนดแบบกำหนดเอง เพื่อบันทึกทุกคำขอใหม่ที่มาถึงเซิร์ฟเวอร์ สิ่งนี้ ใช้กับแอปพลิเคชันทั้งหมดโดยใช้ วิธีการ จากนั้น เราได้กำหนดสองเส้นทาง เส้นทางหนึ่งสำหรับหน้าหลัก( ) และอีกเส้นทางหนึ่งสำหรับหน้าเกี่ยวกับ( ) สุดท้าย เราเริ่มเซิร์ฟเวอร์และฟังที่พอร์ต 3000 middleware loggerMiddleware
middleware app.use()
'/'
'/about'
จะ ดำเนินการสำหรับทุกคำขอ บันทึกข้อความไปยังคอนโซลก่อนที่จะส่งคำขอไปยังตัวจัดการเส้นทางที่เกี่ยวข้องหรือ ในลำดับ middleware loggerMiddleware
middleware
การรวมกันของ routing และ middleware ช่วยให้เราจัดการกับคำขอที่แตกต่างกันและทำงานทั่วไปได้อย่างมีประสิทธิภาพในแอ Express ปพลิเคชัน