Server-Side Astro
ไอเดียในหนึ่งประโยค
หัวข้อที่มีชื่อว่า “ไอเดียในหนึ่งประโยค”Astro เป็น static โดย default แต่คุณ opt เข้าสู่ server เมื่อหน้านั้นต้องการงาน request-time — user ที่ login อยู่, การ submit form, live data, การเช็ค auth Server เป็นเครื่องมือที่คุณหยิบมาใช้อย่างตั้งใจ ไม่ใช่พื้นฐานที่ใช้ตลอด
ทุกอย่างในโมดูลนี้ว่าด้วยการ opt-in นั้น: render ต่อ request, จัดการ request ตรง ๆ, เรียก server logic แบบ type-safe และรัน code ก่อนทุก request
โมดูลนี้ครอบคลุมอะไร
หัวข้อที่มีชื่อว่า “โมดูลนี้ครอบคลุมอะไร”| บทเรียน | สิ่งที่คุณจะได้เรียน |
|---|---|
| SSR & adapters | on-demand rendering, adapter และการอ่าน request |
| Endpoints & API routes | APIRoute handler ที่ return Response |
| Actions | type-safe server function ด้วย defineAction และ validation |
| Middleware & sessions | onRequest, context.locals และ Astro.session |
สี่วิธีในการรัน server code
หัวข้อที่มีชื่อว่า “สี่วิธีในการรัน server code”flowchart TB req["Incoming request"] --> mw["Middleware onRequest (runs first, every request)"] mw --> page["On-demand page (prerender false)"] mw --> api["API endpoint (GET/POST handler)"] mw --> act["Action handler (defineAction)"] page --> resp["Response"] api --> resp act --> resp
- On-demand pages render HTML ต่อ request จึงอ่าน cookies, user และ query params ได้
- API endpoints เป็น route ที่ไม่ใช่ HTML — return JSON, ไฟล์, หรือ webhook reply เป็น
Responseดิบ - Actions เป็น type-safe server function ที่เรียกจาก client พร้อม input ที่ validate แล้ว เหมาะกับ mutation และ form
- Middleware รันก่อนทุก request เป็นที่สำหรับ auth, logging และ data ที่ share ต่อ request