req.accepts ใน ExpressJS

ใน ExpressJS, req.accepts เป็นคุณสมบัติที่ใช้ในการตรวจสอบว่าคำขอปัจจุบันยอมรับเนื้อหาประเภทใด

เนื้อหาประเภทคือ MIME type ของข้อมูลที่ถูกส่งโดยคำขอ

req.accepts จะคืนค่า MIME type ของเนื้อหาประเภทที่ตรงกับความต้องการของคำขอมากที่สุด หากไม่มี MIME type ที่ตรงกับความต้องการของคำขอ req.accepts จะคืนค่า false

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

หากผู้ใช้ส่งคำขออีกครั้งไปยัง URL เดียวกันด้วยหัวเรื่อง Accept: text/plainreq.accepts จะถูกตั้งค่าเป็น false

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

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

app.get("/users/:id", function(req, res) {
const contentType = req.accepts();
if (contentType === "application/json") {
res.send({ id: 12345, name: "John Doe" });
} else if (contentType === "text/plain") {
res.send("The id is 12345 and the name is John Doe");
} else {
res.send("The request does not accept any content types.");
}
});

app.listen(3000);

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

1
2
3
4
{
"id": 12345,
"name": "John Doe"
}

หากผู้ใช้ส่งคำขออีกครั้งไปยัง URL เดียวกันด้วยหัวเรื่อง Accept: text/plainคุณจะเห็นข้อความต่อไปนี้ในคอนโซล:

1
The id is 12345 and the name is John Doe

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