req.route ใน ExpressJS

ใน ExpressJS, req.route เป็นคุณสมบัติที่เก็บข้อมูลเกี่ยวกับเส้นทางที่ตรงกับคำขอในปัจจุบัน ข้อมูลนี้รวมถึงเส้นทางเอง, วิธี HTTP และพารามิเตอร์เส้นทางที่กำหนดชื่อ

ตัวอย่างเช่น หากคุณมีแอปพลิเคชัน ExpressJS ที่ทำงานบน http://localhost:3000/ และผู้ใช้ส่งคำขอไปยัง URL http://localhost:3000/users/12345 req.route จะถูกตั้งค่าเป็น:

1
2
3
4
5
{
path: '/users/:id',
method: 'GET',
params: { id: '12345' }
}

หากต้องการใช้ req.route ใน ExpressJS คุณสามารถใช้สิ่งนี้ในโค้ดของคุณ:

1
2
3
4
5
6
7
8
9
10
const app = express();

app.get("/users/:id", function(req, res) {
const route = req.route;
res.send("The route is: " + route.path);
res.send("The method is: " + route.method);
res.send("The ID is: " + route.params.id);
});

app.listen(3000);

เมื่อคุณเรียกใช้โค้ดนี้และเข้าถึง URL http://localhost:3000/users/12345 คุณจะเห็นข้อความต่อไปนี้ในคอนโซล:

1
2
3
The route is: /users/:id
The method is: GET
The ID is: 12345

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

req.route แตกต่างจาก req.params ในสองวิธี:

  • req.route จะให้ข้อมูลเพิ่มเติมเกี่ยวกับเส้นทางที่ตรงกับคำขอในปัจจุบัน รวมถึงวิธี HTTP และพารามิเตอร์เส้นทางที่กำหนดชื่อ
  • req.params จะให้เฉพาะพารามิเตอร์เส้นทางที่กำหนดชื่อ