การใช้แคช (Caching) ใน Koa.js ช่วยลดการร้องขอที่ซ้ำซ้อนและเพิ่มประสิทธิภาพของแอปพลิเคชันของคุณ. นี่คือวิธีการใช้แคชใน Koa.js:
ใช้ Middleware สำหรับแคช:
คุณสามารถใช้ middleware
koa-cache-control
เพื่อควบคุมการแคชข้อมูลในการตอบสนอง (response) ของแอปพลิเคชัน Koa.js:1
npm install koa-cache-control
หรือถ้าคุณใช้ Yarn:
1
yarn add koa-cache-control
หลังจากติดตั้งแพ็กเกจ
koa-cache-control
, คุณสามารถกำหนด middleware ในแอปพลิเคชัน Koa.js:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20const Koa = require('koa');
const cacheControl = require('koa-cache-control');
const app = new Koa();
// ใช้ middleware สำหรับแคช
app.use(cacheControl());
// เสมือนกับตัวอย่าง route
app.use(async (ctx) => {
// กำหนดความยาวของแคชในวินาที (ในตัวอย่างคือ 1 ชั่วโมง)
ctx.cacheControl = 'public, max-age=3600';
// ส่งข้อมูลในการตอบสนอง
ctx.body = 'ข้อมูลที่ควรถูกแคช';
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});การกำหนดความยาวของแคช:
ในตัวอย่างข้างต้น, เรากำหนดความยาวของแคชโดยใช้
ctx.cacheControl
ใน route โดยกำหนดให้แคชมีระยะเวลาหมดอายุเป็น 1 ชั่วโมง (max-age=3600
) เมื่อข้อมูลถูกแคชแล้ว แคชจะถูกเก็บไว้ในหน่วยความจำของเบราว์เซอร์ของผู้ใช้ ซึ่งทำให้เราลดการร้องขอข้อมูลซ้ำซ้อนได้.การสร้างแคชหลังการร้องขอ:
หากคุณต้องการสร้างแคชเองหลังการร้องขอเพื่อให้มีการควบคุมมากขึ้น, คุณสามารถใช้ตัวแปร
ctx.response.set()
เพื่อกำหนดค่าความยาวของแคชและคีย์แคช:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16app.use(async (ctx) => {
// ตั้งค่าความยาวของแคช
ctx.set('Cache-Control', 'public, max-age=3600');
// ตั้งค่าคีย์แคช
ctx.set('ETag', 'my-unique-key');
// ตรวจสอบการร้องขอหากมีแคชในเซิร์ฟเวอร์
if (ctx.fresh) {
ctx.status = 304; // ไม่ต้องส่งข้อมูลอีกครั้ง
return;
}
// สร้างข้อมูลในการตอบสนอง
ctx.body = 'ข้อมูลที่ควรถูกแคช';
});
การใช้แคชใน Koa.js ช่วยเพิ่มประสิทธิภาพการร้องขอและลดการโหลดบริการของแอปพลิเคชันของคุณ คุณสามารถปรับแต่งการแคชให้เหมาะกับความต้องการของโปรเจกต์ของคุณโดยใช้ middleware koa-cache-control
หรือการตั้งค่าแคชเองใน route ของคุณ.