Middleware ใน ExpressJS คือฟังก์ชันที่ทำงานก่อนหรือหลังเส้นทางที่กำหนดไว้ Middleware สามารถใช้เพื่อเพิ่มคุณสมบัติให้กับแอปพลิเคชัน ExpressJS ได้หลากหลาย เช่น การตรวจสอบสิทธิ์ การบันทึก การปรับปรุงประสิทธิภาพ และอื่นๆ
Middleware ใน ExpressJS เป็นฟังก์ชันที่รับสามอาร์กิวเมนต์:
- รีเควส: รีเควสคือออบเจ็กต์ที่เก็บข้อมูลเกี่ยวกับคำขอ HTTP
- เรสปอนส์: เรสปอนส์คือออบเจ็กต์ที่เก็บข้อมูลเกี่ยวกับคำตอบ HTTP
- ถัดไป: ถัดไปเป็นฟังก์ชันที่เรียกใช้ middleware ถัดไปใน stack
ตัวอย่างเช่น โค้ดต่อไปนี้จะกำหนด middleware ที่บันทึกคำขอ HTTP ทั้งหมด:
1 | const express = require('express'); |
เมื่อคุณรันโค้ดนี้ คุณสามารถไปที่ http://localhost:3000 เพื่อดูข้อความ “Hello, World!” และบันทึกคำขอ HTTP ทั้งหมด
คุณยังสามารถใช้ middleware เพื่อตรวจสอบสิทธิ์ผู้ใช้ก่อนเข้าถึงทรัพยากร:
1 | const express = require('express'); |
โค้ดนี้จะใช้ middleware auth.checkAuth()
เพื่อตรวจสอบสิทธิ์ผู้ใช้ก่อนเข้าถึงทรัพยากร เมื่อคุณรันโค้ดนี้ คุณจะไม่สามารถเข้าถึงทรัพยากรได้จนกว่าคุณจะผ่านการตรวจสอบสิทธิ์
ExpressJS มี middleware ในตัวมากมายที่คุณสามารถใช้เพื่อเพิ่มคุณสมบัติให้กับแอปพลิเคชันของคุณได้ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ middleware ในตัวได้จากเอกสารประกอบของ ExpressJS
นอกจากนี้ คุณยังสามารถเขียน middleware ของคุณเองได้อีกด้วย ในการทำเช่นนี้ ให้สร้างฟังก์ชันที่ตรงตามข้อกำหนดของ middleware และเรียกใช้ฟังก์ชัน app.use()
เพื่อกำหนดเส้นทางการรับส่งข้อมูลไปยัง middleware ของคุณ