มิดเดิลแวร์จะเป็นเรื่องง่าย ลองพิจารณาสถานการณ์นี้

ลองพิจารณาตัวอย่างประจำวันของมิดเดิลแวร์ที่จะตรวจสอบว่าผู้ใช้มีอายุถึงเกณฑ์ที่กฎหมายจะเข้าถึงเว็บไซต์ใดเว็บไซต์หนึ่งได้หรือไม่ 😜

ตอนนี้เพื่อจำกัดผู้ใช้ที่อายุต่ำกว่า 18 ปี เราสามารถคิดได้ว่าถ้าเรามีฟังก์ชันที่ดำเนินการเมื่อผู้ใช้ร้องขอสำหรับเว็บไซต์นั้น ๆ …

ที่นี่เมื่อมิดเดิลแวร์เข้ามา →

มาดูโค้ดสำหรับมิดเดิลแวร์ยืนยันอายุกัน: (ไม่ต้องกังวล เราจะเข้าใจโดยละเอียด ☺)

function ageVerificationMiddleware(req, res, next) {
  const age = req.query.age; // Assuming the age is provided in the query string
  if (age && parseInt(age) >= 18) {
    // User is of legal age, proceed to the next middleware or route handler
    next();
  } else {
    // User is not of legal age, display an error message
    res.send('Sorry, you must be 18 years or older to access this website.');
  }
}

มาดูกันเลย →

ในตัวอย่างนี้ ฟังก์ชัน ageVerificationMiddleware ถูกกำหนดให้เป็นมิดเดิลแวร์ ใช้พารามิเตอร์ req (คำขอ), res (ตอบกลับ) และ next

ภายในฟังก์ชันมิดเดิลแวร์ เราจะดึงอายุของผู้ใช้จากสตริงการสืบค้นโดยใช้ req.query.age เราถือว่าระบุอายุเป็นพารามิเตอร์การค้นหา

จากนั้นเราจะตรวจสอบว่ามี age อยู่หรือไม่และมากกว่าหรือเท่ากับ 18 หากตรงตามเงื่อนไข เราจะเรียก next() เพื่อส่งการควบคุมไปยังมิดเดิลแวร์หรือตัวจัดการเส้นทางถัดไป

หากไม่ได้ระบุอายุของผู้ใช้หรือน้อยกว่า 18 ปี เราจะส่งข้อความแสดงข้อผิดพลาดไปยังผู้ใช้โดยใช้ res.send() โดยระบุว่าผู้ใช้จะต้องมีอายุ 18 ปีขึ้นไปจึงจะสามารถเข้าถึงเว็บไซต์ได้

ดังนั้นเราจึงได้เขียนมิดเดิลแวร์ ตอนนี้เมื่อผู้ใช้ร้องขอ ฟังก์ชั่นนี้ควรจะถูกเรียก มาดูกันว่าเราจะนำไปใช้ได้อย่างไร

หากต้องการใช้มิดเดิลแวร์การยืนยันอายุนี้ คุณสามารถเพิ่มลงในเส้นทางเฉพาะหรือใช้ทั่วโลกโดยใช้ app.use():

app.use(ageVerificationMiddleware);
app.get('/restricted-page', (req, res) => {
  // Route handler logic for the restricted page
  res.send('Welcome to the restricted page!');
});

ในโค้ดด้านบน ageVerificationMiddleware จะถูกนำไปใช้ทั่วโลกโดยใช้ app.use() มันจะถูกดำเนินการสำหรับทุกคำขอที่เข้ามา และหากผู้ใช้ยังไม่บรรลุนิติภาวะ พวกเขาจะได้รับข้อความแสดงข้อผิดพลาด หากผู้ใช้มีอายุถึงเกณฑ์ที่กฎหมายกำหนด การควบคุมจะถูกส่งไปยังมิดเดิลแวร์หรือตัวจัดการเส้นทางที่ตามมา

การใช้มิดเดิลแวร์การยืนยันอายุนี้ช่วยให้เรามั่นใจได้ว่าผู้ใช้มีอายุถึงเกณฑ์ที่กฎหมายกำหนดก่อนที่จะอนุญาตให้พวกเขาเข้าถึงส่วนใดส่วนหนึ่งของเว็บไซต์หรือแอปพลิเคชันของคุณ

ขอบคุณที่อ่านครับ😃