req.stale ใน ExpressJS

ใน ExpressJS, req.stale เป็นคุณสมบัติที่เก็บค่า boolean ที่ระบุว่าคำขอปัจจุบันเป็นเก่าหรือไม่

คำขอเก่าคือคำขอที่มาจากแคชของไคลเอ็นต์ หากคำขอมาจากแคชของไคลเอ็นต์ นั่นหมายความว่าแคชของไคลเอ็นต์นั้นล้าสมัยแล้วและอาจไม่ถูกต้อง

req.stale จะเท่ากับ true หากคำขอมาจากแคชของไคลเอ็นต์ หากคำขอไม่ได้มาจากแคชของไคลเอ็นต์ req.stale จะเท่ากับ false

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

หากผู้ใช้ส่งคำขออีกครั้งไปยัง URL เดียวกันภายในระยะเวลาที่กำหนด req.stale จะถูกตั้งค่าเป็น true

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

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

app.get("/users/:id", function(req, res) {
if (req.stale) {
res.send("The request is stale.");
} else {
res.send("The request is not stale.");
}
});

app.listen(3000);

เมื่อคุณเรียกใช้โค้ดนี้และเข้าถึง URL http://localhost:3000/users/12345 คุณจะเห็นข้อความ “The request is not stale.” ในคอนโซล

หากคุณเข้าถึง URL เดียวกันอีกครั้งภายในระยะเวลาที่กำหนด คุณจะเห็นข้อความ “The request is stale.” ในคอนโซล

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