คำแนะนำเกี่ยวกับการกำหนดเส้นทางและมิดเดิลแวร์ใน Express

การกำหนดเส้นทางและมิดเดิลแวร์เป็นสองแนวคิดที่สำคัญใน 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