Middleware ใน Koa.js

Middleware เป็นส่วนสำคัญใน Koa.js ที่ใช้ในการจัดการและประมวลผลข้อมูลต่าง ๆ ในแอปพลิเคชันของคุณ โดยสามารถทำอะไรก็ได้เช่น การปรับแต่งข้อมูลการร้องขอ (request) หรือการตอบสนอง (response) การตรวจสอบการรับรองตัวตน การบันทึกการกิจกรรม และอื่น ๆ อีกมากมาย โดย middleware ใน Koa.js มีลักษณะเป็นฟังก์ชันที่รับอาร์กิวเมนต์สามตัวคือ ctx (Context), next และ error (เฉพาะใน middleware ที่จัดการข้อผิดพลาด) ซึ่งทำให้มีความยืดหยุ่นในการจัดการข้อมูลและการส่งต่อความควบคุมไปยัง middleware ถัดไป.

ตัวอย่างการใช้ middleware ใน Koa.js:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const Koa = require('koa');
const app = new Koa();

// Middleware 1
app.use(async (ctx, next) => {
// ทำสิ่งใดสิ่งหนึ่งก่อนส่งความควบคุมไปยัง middleware ถัดไป
ctx.body = 'Hello, ';
await next(); // ส่งความควบคุมไปยัง middleware ถัดไป
});

// Middleware 2
app.use(async (ctx, next) => {
// ทำสิ่งใดสิ่งหนึ่งก่อนส่งความควบคุมไปยัง middleware ถัดไป
ctx.body += 'Koa!';
await next(); // ส่งความควบคุมไปยัง middleware ถัดไป
});

// Middleware 3 (สุดท้าย)
app.use(async (ctx) => {
// ทำสิ่งใดสิ่งหนึ่งหลังจาก middleware ทั้งหมดเสร็จสิ้น
ctx.status = 200;
});

app.listen(3000, () => {
console.log('Server is running on port 3000');
});

ในตัวอย่างข้างต้น:

  1. Middleware 1 กำหนดค่า ctx.body เป็น ‘Hello, ‘ และส่งความควบคุมไปยัง middleware ถัดไป.
  2. Middleware 2 เพิ่มข้อมูล ‘Koa!’ เข้าไปใน ctx.body และส่งความควบคุมไปยัง middleware ถัดไป.
  3. Middleware 3 กำหนด ctx.status เป็น 200 และสิ้นสุดการประมวลผล.

Middleware ใน Koa.js ถูกเรียกในลำดับที่กำหนดในรหัส และ middleware จะสามารถกำหนดค่าตัวแปรใน ctx ได้ซึ่งจะถูกส่งต่อไปยัง middleware ถัดไปในรายการ. การใช้ middleware ช่วยให้คุณสามารถแยกแยะการประมวลผลและการจัดการต่าง ๆ ในแอปพลิเคชันของคุณอย่างมีระเบียบและยืดหยุ่น.