req.acceptsCharsets ใน ExpressJS

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

Character set คือชุดของรหัสที่ใช้ในการแทนที่ตัวอักษรและสัญลักษณ์ต่างๆ

req.acceptsCharsets จะคืนค่า character set ของ character set ที่ตรงกับความต้องการของคำขอมากที่สุด หากไม่มี character set ที่ตรงกับความต้องการของคำขอ req.acceptsCharsets จะคืนค่า false

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

หากผู้ใช้ส่งคำขออีกครั้งไปยัง URL เดียวกันด้วยหัวเรื่อง Accept-Charset: ISO-8859-1req.acceptsCharsets จะถูกตั้งค่าเป็น false

หากต้องการใช้ req.acceptsCharsets ใน 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 charset = req.acceptsCharsets();
if (charset === "utf-8") {
res.send({ id: 12345, name: "John Doe" });
} else if (charset === "ISO-8859-1") {
res.send("The id is 12345 and the name is John Doe");
} else {
res.send("The request does not accept any character sets.");
}
});

app.listen(3000);

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

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

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

1
The id is 12345 and the name is John Doe

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