ข้ามไปยังเนื้อหา

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 & adapterson-demand rendering, adapter และการอ่าน request
Endpoints & API routesAPIRoute handler ที่ return Response
Actionstype-safe server function ด้วย defineAction และ validation
Middleware & sessionsonRequest, context.locals และ Astro.session
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
พื้นผิวฝั่ง server ของ Astro
  • 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
default ของ Astro คืออะไร และเมื่อไรที่คุณ opt เข้าสู่ server?
เครื่องมือไหนเหมาะกับ type-safe server function ที่เรียกจาก client พร้อม input ที่ validate แล้ว?
Middleware รันที่ไหน?