Skip to content

NestJS

กลับสารบัญหลัก

NestJS คือ framework backend สำหรับ Node.js ที่ "เอาความเป็นระเบียบของ Spring Boot/Angular มาให้โลก TypeScript" — ใช้แนวคิดหลัก 3 อย่าง:

  • decorator (ตัวตกแต่ง) — ฟังก์ชันที่เอาไป "แปะ" บน class/method เพื่อบอก Nest ว่าอันนี้คืออะไร เช่น @Controller, @Get
  • dependency injection (DI — การ "ฉีด" สิ่งที่ class นี้ต้องพึ่งเข้ามาให้แทนการไปหยิบเอง)
  • module system — โครงไฟล์แบบที่ Spring เคยทำกับ Java

หนังสือเล่มนี้สอน NestJS จากศูนย์ — เริ่มจาก "ทำไมต้องมี framework แบบนี้" ไปถึง production-grade microservices

ก่อนเริ่ม — ควรผ่าน TypeScript มาก่อน อย่างน้อยถึงบทที่ 8 (Class + Modifier) (ถ้าเคยใช้ Spring Boot มาก่อนจะคุ้นเร็วขึ้น แต่ไม่จำเป็น — ไม่เคยเขียน Spring Boot มาก็เริ่มได้ปกติ)

💡 แนะนำอย่างยิ่ง: ผ่าน Node.js มาก่อน — NestJS ยืนบน Node + Express (เฟรมเวิร์กเว็บของ Node ที่ Nest ใช้เป็นฐานอยู่ข้างใต้) ถ้ายังไม่รู้จัก http, npm, middleware (โค้ดที่คั่นกลางระหว่าง request กับ response เช่น log หรือเช็ค token ก่อนเข้าจริง), async/error ฝั่ง server บทแรก ๆ ของ Nest จะกระโดดเร็วเกินไป

Node track ปูพื้นตรงนั้นให้ครบก่อน แล้วค่อยกลับมาที่นี่ จะเข้าใจได้ง่ายขึ้นว่า decorator (เช่น @Controller, @Get) ทำงานอยู่เบื้องหลังอย่างไร


โครงสร้างหนังสือ

  1. 00 — NestJS คืออะไร + ทำไมต้องมี — แนะนำ decorator, DI (Dependency Injection), และ IoC (Inversion of Control — การ "กลับทิศ" การควบคุม: แทนที่โค้ดของเราจะไปหยิบของเอง ให้ framework เป็นคนเอามายื่นให้)
  2. 01 — Modules + Providers (รากของ DI container)
  3. 02 — Controllers + Routing (REST API แรก)
  4. 03 — Middleware, Pipes, Guards, Interceptors, Filters
  5. 04 — Database (TypeORM + Prisma) — เลือกตัวไหน อย่างไร
  6. 05 — Authentication + Authorization (JWT, Passport, RBAC)
  7. 06 — Testing (unit + e2e + Test Doubles)
  8. 07 — Microservices + GraphQL (TCP/Redis/Kafka, code-first)
  9. 08 — Production Readiness (logging, config, health, deployment)

คุณจะได้อะไรเมื่ออ่านจบ

  • เข้าใจ DI container ของ Nest ว่าทำงานยังไง (ไม่ใช่แค่ใช้เป็น)
  • เขียน REST API + GraphQL + microservices ได้จริง
  • รู้ว่าเมื่อไหร่ควรใช้ Nest เมื่อไหร่ไม่ควร
  • เลือกระหว่าง TypeORM/Prisma/Drizzle เป็น
  • ทำ auth ที่ปลอดภัยจริง (ไม่ใช่แค่ copy ตัวอย่าง)
  • deploy ขึ้น production ได้