
กำลังโหลด...

กำลังโหลด...

ไฟล์ JSON ช่วยให้เราเริ่มได้เร็ว แต่ถ้ามีหลาย Request เขียนพร้อมกัน ข้อมูลอาจทับกัน วันนี้เราจะเปลี่ยนเฉพาะที่เก็บข้อมูล ส่วน Request และ Response ที่รู้จักแล้วยังเหมือนเดิม
Books API เดิมอ่านและเขียนไฟล์ JSON ได้ แต่เมื่อหลาย Request เขียนพร้อมกัน ไฟล์อาจทับกันได้ วันนี้จึงเปลี่ยน เฉพาะที่เก็บข้อมูล เป็น PostgreSQL ส่วน URL, Request และ JSON Response ยังทำงานแบบเดิม
flowchart LR
A["Postman / Browser\nGET /books/7"] --> B["Express route\nรับ request"]
B --> C["PostgreSQL\nค้นหา row"]
C --> D["Express route\nแปลงเป็น JSON"]
D --> E["Postman / Browser\n200 + book"]
| จุด | ข้อมูลที่เข้า | สิ่งที่ทำ | ข้อมูลที่ออก |
|---|---|---|---|
| Client | GET /books/7 |
ขอหนังสือ id 7 | HTTP Request |
| Express route | req.params.id = 7 |
สร้าง SQL และส่งค่าผ่าน pg |
SQL + values |
| PostgreSQL | SELECT ... WHERE id = $1 |
ค้นหา row ใน table | rows |
| Express route | result.rows[0] |
ส่งเป็น JSON | HTTP Response |
books table
┌────┬──────────────────┬────────────────┐
│ id │ title │ author │
├────┼──────────────────┼────────────────┤
│ 7 │ The Little Prince│ Antoine... │ ← row หนึ่งแถว
└────┴──────────────────┴────────────────┘
↑ ↑ ↑
column column column
books_dbbookstitleid ที่ไม่ซ้ำ เพื่อระบุ row ให้ชัดสำหรับ GET /books/7 ให้ชี้ตามลูกศรแล้วตอบ:
7 จากตรงไหน? — req.params.idrowsBackend มีหน้าที่รับ Request → ตรวจ/ประมวลผล → ขอข้อมูล → ส่ง Response ไม่ว่าเราจะเก็บข้อมูลไว้ในไฟล์หรือ Database