app.param ใน ExpressJS

ฟังก์ชัน app.param() ใน ExpressJS ให้คุณกำหนดการเรียกกลับเพื่อเรียกใช้เมื่อพบพารามิเตอร์เส้นทาง

ฟังก์ชัน app.param() ต้องการสองอาร์กิวเมนต์:

  • ชื่อพารามิเตอร์: ชื่อพารามิเตอร์เส้นทางที่คุณต้องการกำหนดการเรียกกลับ
  • การเรียกกลับ: การเรียกกลับที่คุณต้องการเรียกใช้เมื่อพบพารามิเตอร์เส้นทาง

ตัวอย่างเช่น โค้ดต่อไปนี้จะกำหนดการเรียกกลับเพื่อตรวจสอบว่าพารามิเตอร์เส้นทาง “id” เป็นตัวเลขหรือไม่:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const express = require('express');

const app = express();

app.param('id', (req, res, next, value) => {
// ตรวจสอบว่าพารามิเตอร์เส้นทาง "id" เป็นตัวเลขหรือไม่
if (!Number.isInteger(value)) {
// ส่งคืนข้อผิดพลาด 400
res.status(400).send('Parameter "id" must be an integer');
} else {
// ส่งต่อไปที่ตัวจัดการเส้นทางถัดไป
next();
}
});

app.get('/users/:id', (req, res) => {
// เข้าถึงพารามิเตอร์เส้นทาง "id"
const id = req.params.id;

// ทำงานกับพารามิเตอร์เส้นทาง "id"
});

app.listen(3000, () => {
console.log('Server started on port 3000');
});

โค้ดนี้จะใช้ฟังก์ชัน param() เพื่อกำหนดการเรียกกลับเพื่อตรวจสอบว่าพารามิเตอร์เส้นทาง “id” เป็นตัวเลขหรือไม่ หากไม่ใช่ จะส่งคืนข้อผิดพลาด 400

คุณสามารถใช้ฟังก์ชัน app.param() เพื่อกำหนดการเรียกกลับเพื่อตรวจสอบพารามิเตอร์เส้นทางที่กำหนดเอง ตัวอย่างเช่น คุณสามารถใช้ฟังก์ชัน app.param() เพื่อตรวจสอบว่าพารามิเตอร์เส้นทาง “name” เป็นไปตามรูปแบบที่กำหนด หรือเพื่อตรวจสอบว่าพารามิเตอร์เส้นทาง “email” ถูกต้อง

เมื่อคุณใช้ฟังก์ชัน app.param() คุณควรให้ความสนใจเป็นพิเศษกับ:

  • ชื่อพารามิเตอร์: ตรวจสอบให้แน่ใจว่าคุณกำลังกำหนดการเรียกกลับสำหรับพารามิเตอร์เส้นทางที่ถูกต้อง
  • การเรียกกลับ: ตรวจสอบให้แน่ใจว่าการเรียกกลับของคุณทำงานอย่างเหมาะสมเมื่อพบพารามิเตอร์เส้นทาง

ฟังก์ชัน app.param() เป็นเครื่องมือที่มีประสิทธิภาพที่สามารถช่วยให้คุณปกป้องแอปพลิเคชัน ExpressJS ของคุณจากการโจมตี