ສອບຖາມຫຼັກສູດເລືອກຊ່ອງທາງທີ່ສະດວກ ທີມງານຕອບເອງທຸກຊ່ອງທາງ
LINE @itgeniusຕອບໄວທີ່ສຸດ · ຈ–ສ 9:00–17:00 ໂມງ
ໂທລະສັບ
02-570-8449ຫ້ອງການ088-807-9770ມືຖື
ອີເມວ ແລະ ໂຊຊຽວ
contact@itgenius.co.thສຳລັບໃບສະເໜີລາຄາ ແລະ ເອກະສານFacebookitgeniusonlineYouTubeitgeniusengຂໍຄຳປຶກສາຈັດຝຶກອົບຮົມໃຫ້ທີມ
ພັດທະນາເວັບໄຊ · WDC-90

Advanced NestJS

หลักสูตร Advanced NestJS เป็นการอบรมต่อยอด NestJS และ TypeScript สู่การสร้าง API ที่ใช้งานจริง ครอบคลุม TypeORM กับ MySQL, Migration และ Transaction, Validation, เอกสาร OpenAPI, ระบบล็อกอินด้วย JWT พร้อมสิทธิ์ผู้ใช้ และการเขียน Test เหมาะกับนักพัฒนาที่มีพื้นฐาน NestJS และทีมที่ดูแลระบบหลังบ้านด้วย TypeScript

ອັບເດດລ່າສຸດ
ລາຄາເລີ່ມຕົ້ນ 8,550 ບາດ / ທ່ານ 9,500 −10% ຍັງບໍ່ລວມ VAT 7% · ມີລາຄາໝູ່ຄະນະ
PDFດາວໂຫຼດ Course Outline
  • ໄລຍະເວລາ18 ຊົ່ວໂມງ · 3 ມື້
  • ຮູບແບບຢູ່ສະຖາບັນ / ອອນລາຍສົດ
  • ຮອບຕໍ່ໄປ22–24 ທ.ວ. 26
  • ໃບຢັ້ງຢືນມີໃບຢັ້ງຢືນ

ພາບລວມຫຼັກສູດ

NestJS เป็นเฟรมเวิร์กฝั่ง Server ของ Node.js ที่ทีมพัฒนานิยมใช้สร้าง API ระดับองค์กร เพราะมีโครงสร้าง Module, Dependency Injection และ TypeScript ที่ชัดเจน แต่เมื่อผ่านขั้นพื้นฐานไปแล้ว นักพัฒนามักติดอยู่กับเรื่องที่ทำให้ระบบจริงยาก เช่น ออกแบบ Relation ของฐานข้อมูลไม่ดีจนเกิด Query ช้า เปิด synchronize ไว้บน Production ไม่มี Transaction ระบบล็อกอินที่ไม่ปลอดภัย และไม่มี Test รองรับเมื่อต้องแก้โค้ด ขณะที่ NestJS 12 และ TypeORM 1.x ก็เปลี่ยนแนวทางหลายอย่างจากรุ่นที่ตำราส่วนใหญ่ใช้

หลักสูตรนี้ต่อยอดจากพื้นฐาน NestJS สู่การสร้าง API ที่พร้อมใช้งานจริงด้วย NestJS 12 บน Node.js 24 LTS เริ่มจากเชื่อม MySQL 8.4 ด้วย TypeORM 1.x ออกแบบ Entity และ Relation เขียน Query ขั้นสูงด้วย QueryBuilder จัดการ Migration และ Transaction จากนั้นออกแบบ RESTful API ด้วย DTO และ Validation ทั้งแบบ class-validator และ Standard Schema ใช้ Interceptor, Exception Filter และเอกสาร OpenAPI แล้วทำระบบล็อกอินด้วย JWT พร้อม Guard และ Role เพิ่มความปลอดภัย Cache และ Rate Limit เขียน Unit และ E2E Test ด้วย Vitest ปิดท้ายด้วยการนำแอปขึ้น Docker และ Capstone สร้าง API ร้านค้าออนไลน์ครบวงจร (อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง ระดับ Intermediate)

ສິ່ງທີ່ທ່ານຈະໄດ້ຮັບ

  • ตั้งโปรเจกต์ NestJS 12 แบบปัจจุบัน พร้อม Configuration และเครื่องมือทดสอบ
  • เชื่อม MySQL ด้วย TypeORM 1.x และออกแบบ Entity กับ Relation ได้ถูกต้อง
  • เขียน Query ขั้นสูง จัดการ Migration และ Transaction ได้อย่างปลอดภัย
  • ออกแบบ RESTful API ด้วย DTO, Validation, Interceptor และ Exception Filter
  • สร้างเอกสาร API ตามมาตรฐาน OpenAPI ให้ทีมใช้งานร่วมกัน
  • ทำระบบล็อกอินด้วย JWT และกำหนดสิทธิ์ด้วย Guard และ Role
  • เขียน Unit Test และ E2E Test ให้กับ API ด้วย Vitest
  • นำแอป NestJS ขึ้น Docker พร้อม Health Check

ຫຼັກສູດນີ້ເໝາະສຳລັບ

  • นักพัฒนาที่ผ่านพื้นฐาน NestJS แล้วและต้องการสร้าง API สำหรับงานจริง
  • นักพัฒนา Node.js และ Express ที่ต้องการโครงสร้างที่เป็นระบบมากขึ้น
  • นักพัฒนา Full-stack ที่ดูแลทั้ง Frontend และ API ด้วย TypeScript
  • ทีมพัฒนาที่ต้องการอัปเดตโปรเจกต์ NestJS เดิมเป็นรุ่น 12
  • ครู อาจารย์ และนักศึกษาสายคอมพิวเตอร์ที่ต้องการแนวทางพัฒนา Backend แบบปัจจุบัน

ພື້ນຖານຂອງຜູ້ເຂົ້າຝຶກອົບຮົມ

  • เคยสร้างโปรเจกต์ NestJS และเข้าใจ Module, Controller และ Provider
  • เขียน TypeScript ได้ เช่น Class, Interface, Decorator และ async/await
  • เข้าใจ HTTP, RESTful API และ JSON
  • รู้จักฐานข้อมูลเชิงสัมพันธ์และคำสั่ง SQL พื้นฐาน
  • โน้ตบุ๊กที่ติดตั้ง Node.js, Docker Desktop และ VS Code ได้ พร้อมสิทธิ์ติดตั้งโปรแกรม

ຫົວຂໍ້ການຝຶກອົບຮົມ

รายละเอียดหลักสูตร

หลักสูตรนี้เป็นฉบับปรับปรุงใหม่ปี 2026 ที่มาแทนหลักสูตร Advanced NestJS รุ่นเดิม เนื้อหาเขียนใหม่ทั้งหมดสำหรับ NestJS 12, Node.js 24 LTS, TypeORM 1.x และ MySQL 8.4 อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง (09:00-16:00 น.) รูปแบบบรรยายพร้อม Lab บน API ร้านค้าออนไลน์ชุดเดียวที่ต่อเติมตลอดหลักสูตร ระดับ Intermediate

ต่อยอดจากหลักสูตร Basic NestJS โดยคงแกนเดิมเรื่อง TypeORM กับ MySQL, Web API และ JWT แล้วเพิ่ม Migration, Transaction, Standard Schema Validation, OpenAPI, Role และ Refresh Token, Cache, Rate Limit, Test ด้วย Vitest และ Docker ไม่ครอบคลุม Microservices ซึ่งอยู่ในหลักสูตร Building Microservices with NestJS ผู้เรียนได้ Lab Guide ซอร์สโค้ดครบทุก Lab และไฟล์ docker-compose กลับไปใช้งานต่อ

Day 1 TypeORM และฐานข้อมูล MySQL

Section 1: Lab: เตรียมโปรเจกต์ NestJS 12

  • ของใหม่ใน NestJS 12: แพ็กเกจแบบ ESM, Standard Schema และ Vitest
  • สร้างโปรเจกต์ด้วย Nest CLI บน Node.js 24 LTS และเลือก ESM หรือ CommonJS
  • จัดการ Configuration ด้วย @nestjs/config พร้อมตรวจค่า Environment
  • รัน MySQL 8.4 ด้วย Docker Compose และเชื่อมต่อด้วย DBeaver
  • Lab: โครงโปรเจกต์ร้านค้าออนไลน์ที่ใช้ตลอดหลักสูตร

Section 2: TypeORM 1.x กับ NestJS

  • แนวคิด ORM, DataSource และรูปแบบ Data Mapper
  • สิ่งที่เปลี่ยนจาก TypeORM 0.3 เป็น 1.x เช่น Node.js 20 ขึ้นไปและไดรเวอร์ mysql2
  • ตั้งค่า TypeOrmModule.forRootAsync ร่วมกับ ConfigService
  • สร้าง Entity และ Inject Repository เข้า Service
  • เหตุผลที่ไม่ควรเปิด synchronize บน Production

Section 3: Lab: Entity และ Relation

  • ชนิดคอลัมน์, Primary Key แบบตัวเลขหรือ UUID และ Index
  • One to One, Many to One และ One to Many
  • Many to Many พร้อมตารางเชื่อมที่มีข้อมูลเพิ่ม
  • Cascade, Eager และ Lazy Relation และผลต่อประสิทธิภาพ
  • Lab: ออกแบบ Entity สินค้า หมวดหมู่ ลูกค้า และคำสั่งซื้อ

Section 4: Query ขั้นสูง

  • Find Options: where, relations, order และ select
  • QueryBuilder สำหรับ Join, Group By และรายงานสรุป
  • Pagination และการค้นหาแบบหลายเงื่อนไข
  • ตรวจและแก้ปัญหา N+1 Query จาก Log ของ SQL
  • รัน Raw SQL แบบ Parameterized อย่างปลอดภัย

Section 5: Lab: Migration, Seed และ Transaction

  • สร้างและรัน Migration ด้วย TypeORM CLI
  • เขียนสคริปต์ Seed ข้อมูลตัวอย่างที่รันซ้ำได้
  • Transaction ด้วย DataSource.transaction และ QueryRunner
  • Optimistic Locking ด้วยคอลัมน์ Version
  • Lab: บันทึกคำสั่งซื้อและตัดสต็อกสินค้าภายใน Transaction
Day 2 ออกแบบ RESTful API ขั้นสูง

Section 6: Controller และ Routing ขั้นสูง

  • ออกแบบ Resource, Status Code และ Header ให้ถูกหลัก REST
  • Route Parameter, Query String และ Pipe แปลงชนิดข้อมูล
  • รูปแบบ Route แบบใหม่ที่ใช้ชื่อพารามิเตอร์สำหรับ Wildcard
  • API Versioning ผ่าน URI หรือ Header
  • Custom Decorator สำหรับดึงข้อมูลจาก Request

Section 7: Lab: DTO และ Validation

  • ValidationPipe กับ class-validator และ class-transformer
  • whitelist, transform และ Mapped Types เช่น PartialType
  • StandardSchemaValidationPipe กับ Zod ที่มาใหม่ใน NestJS 12
  • เลือกแนวทาง Validation ให้เหมาะกับโปรเจกต์และทีม
  • Lab: ตรวจข้อมูลสินค้าและคำสั่งซื้อครบทุก Endpoint

Section 8: Interceptor, Exception Filter และ Serialization

  • Interceptor สำหรับ Logging, วัดเวลา และจัดรูปแบบ Response
  • Exception Filter กลางสำหรับแปลง Error ของฐานข้อมูล
  • ซ่อนฟิลด์ที่ไม่ควรส่งออกด้วย Serialization
  • ลำดับการทำงานของ Middleware, Guard, Interceptor และ Pipe

Section 9: เอกสาร API ด้วย OpenAPI

  • ติดตั้ง @nestjs/swagger และเปิดหน้าเอกสาร Swagger UI
  • ใช้ CLI Plugin ลด Decorator ที่ต้องเขียนซ้ำ
  • อธิบาย DTO, Response และการยืนยันตัวตนแบบ Bearer ในเอกสาร
  • ส่งออกไฟล์ OpenAPI ให้ทีม Frontend สร้าง Client ต่อได้

Section 10: Workshop: RESTful API ร้านค้าออนไลน์

  • API สินค้าและหมวดหมู่พร้อม Pagination, Filter และ Sorting
  • API คำสั่งซื้อที่ทำงานภายใน Transaction
  • Upload รูปสินค้าพร้อมตรวจขนาดและชนิดไฟล์ด้วย ParseFilePipe
  • ทดสอบทุก Endpoint ผ่าน Swagger UI, Postman หรือ Bruno
Day 3 Authentication, Testing และ Deploy

Section 11: Lab: ระบบล็อกอินด้วย JWT

  • Hashing รหัสผ่านด้วย bcrypt หรือ Argon2 เทียบกับการเข้ารหัสข้อมูล
  • ออก Access Token ด้วย @nestjs/jwt และตรวจด้วย AuthGuard
  • Guard แบบ Global พร้อม Decorator @Public() สำหรับ Route สาธารณะ
  • Passport Strategy เป็นทางเลือกเมื่อต้องรองรับการล็อกอินหลายแบบ
  • Lab: API สมัครสมาชิก เข้าสู่ระบบ และดูข้อมูลของตนเอง

Section 12: Authorization และ Refresh Token

  • Role Decorator และ RolesGuard สำหรับ Admin, Staff และ Customer
  • ตรวจความเป็นเจ้าของข้อมูล เช่น ลูกค้าดูได้เฉพาะคำสั่งซื้อของตนเอง
  • Refresh Token แบบหมุนเวียนและการเพิกถอน Token
  • Lab: กำหนดสิทธิ์ให้ API ร้านค้าครบทุก Endpoint

Section 13: ความปลอดภัยและประสิทธิภาพ

  • ตั้งค่า CORS และ Helmet ให้เหมาะกับการใช้งานจริง
  • จำกัดจำนวนคำขอด้วย @nestjs/throttler
  • Cache ผลลัพธ์ที่เรียกบ่อยด้วย CacheModule
  • ช่องโหว่ที่พบบ่อยตาม OWASP API Security Top 10
  • Logging และ Health Check ด้วย @nestjs/terminus

Section 14: Lab: Unit Test และ E2E Test

  • เขียน Unit Test ด้วย Vitest และ Test.createTestingModule
  • Mock Repository และ Service ที่ต้องพึ่งพา
  • E2E Test ด้วย Supertest กับฐานข้อมูลทดสอบบน Docker
  • วัด Test Coverage และรัน Test อัตโนมัติก่อน Merge

Section 15: Workshop: Docker และ Capstone

  • เขียน Dockerfile แบบ Multi-stage สำหรับแอป NestJS
  • Docker Compose สำหรับ API และ MySQL พร้อมรัน Migration อัตโนมัติ
  • Capstone: เติมระบบรีวิวสินค้าหรือคูปองส่วนลดพร้อมสิทธิ์และ Test
  • นำเสนอผลงาน รีวิวโค้ดร่วมกัน และสรุป Checklist ก่อนขึ้น Production

ຮອບຝຶກອົບຮົມ ແລະ ຮູບແບບການຝຶກອົບຮົມ

ສຳລັບບຸກຄົນ — ຮອບຝຶກອົບຮົມທົ່ວໄປ

22–24ທັນວາ
ໃນຫ້ອງຮຽນ22–24 ທ.ວ. 26
ເຫຼືອ 20 ບ່ອນນັ່ງ
16–18ກຸມພາ
ໃນຫ້ອງຮຽນ16–18 ກ.ພ. 27
ເຫຼືອ 20 ບ່ອນນັ່ງ
2–4ມີນາ
ໃນຫ້ອງຮຽນ2–4 ມ.ນ. 27
ເຫຼືອ 20 ບ່ອນນັ່ງ
5–7ພຶດສະພາ
ໃນຫ້ອງຮຽນ5–7 ພ.ພ. 27
ເຫຼືອ 20 ບ່ອນນັ່ງ
21–23ກໍລະກົດ
ໃນຫ້ອງຮຽນ21–23 ກ.ລ. 27
ເຫຼືອ 20 ບ່ອນນັ່ງ
28–30ກັນຍາ
ໃນຫ້ອງຮຽນ28–30 ກ.ຍ. 27
ເຫຼືອ 20 ບ່ອນນັ່ງ
9–11ພະຈິກ
ໃນຫ້ອງຮຽນ9–11 ພ.ຈ. 27
ເຫຼືອ 20 ບ່ອນນັ່ງ

ສຳລັບອົງກອນ — In-house / Private Training

  • ປັບເນື້ອໃນໃຫ້ກົງກັບເຄື່ອງມື ແລະ ວຽກຈິງຂອງທີມ
  • ເລືອກວັນເອງ ຝຶກອົບຮົມທີ່ບໍລິສັດ ຫຼື ອອນລາຍສົດ
  • ອອກໃບສະເໜີລາຄາໃນນາມນິຕິບຸກຄົນໃຫ້ຝ່າຍຈັດຊື້
ຂໍໃບສະເໜີລາຄາຝຶກອົບຮົມອົງກອນ

ວິທະຍາກອນຜູ້ສອນ

ຄຳຖາມທີ່ພົບເລື້ອຍ

TypeORM คืออะไร ใช้กับ NestJS อย่างไร

TypeORM เป็น ORM สำหรับ TypeScript ที่ให้เรากำหนดตารางเป็นคลาส Entity แล้วอ่านเขียนข้อมูลผ่าน Repository แทนการเขียน SQL เองทุกครั้ง ใน NestJS ให้ติดตั้ง @nestjs/typeorm กับไดรเวอร์ mysql2 ซึ่ง TypeORM 1.x รองรับเป็นไดรเวอร์เดียวสำหรับ MySQL ตั้งค่าการเชื่อมต่อด้วย TypeOrmModule.forRootAsync ร่วมกับ ConfigService ลงทะเบียน Entity ในแต่ละ Module ด้วย TypeOrmModule.forFeature แล้ว Inject Repository เข้า Service ส่วนการเปลี่ยนโครงสร้างตารางบน Production ควรใช้ Migration แทน synchronize

ความสัมพันธ์ One-to-One One-to-Many และ Many-to-One ใน TypeORM ต่างกันอย่างไร

One-to-One คือหนึ่งแถวผูกกับอีกตารางได้หนึ่งแถว เช่น ผู้ใช้กับโปรไฟล์ ใช้ @OneToOne คู่กับ @JoinColumn ในฝั่งที่เก็บ Foreign Key ส่วน One-to-Many กับ Many-to-One เป็นความสัมพันธ์เดียวกันที่มองคนละฝั่ง เช่น หมวดสินค้าหนึ่งหมวดมีสินค้าหลายชิ้น ฝั่งหมวดใช้ @OneToMany ฝั่งสินค้าใช้ @ManyToOne และ Foreign Key จะอยู่ในตารางฝั่ง Many เสมอ เวลาดึงข้อมูลควรเลือกโหลด Relation เฉพาะที่ต้องใช้เพื่อหลีกเลี่ยงปัญหา N+1 Query

ทำระบบล็อกอินด้วย JWT ใน NestJS มีขั้นตอนอย่างไร

เก็บรหัสผ่านแบบ Hash ด้วย bcrypt หรือ Argon2 สร้าง AuthService ตรวจอีเมลและรหัสผ่าน เมื่อถูกต้องให้ออก Access Token ด้วย JwtService จาก @nestjs/jwt แล้วเขียน AuthGuard อ่าน Token จาก Header Authorization แบบ Bearer ตั้ง Guard เป็นแบบ Global และใช้ Decorator @Public() เปิดเฉพาะ Route สาธารณะ จากนั้นเพิ่ม RolesGuard สำหรับสิทธิ์ตาม Role และ Refresh Token แบบหมุนเวียน ถ้าต้องรองรับการล็อกอินหลายแบบใช้ Passport Strategy ได้

หลักสูตร Advanced NestJS เหมาะกับใคร ต้องมีพื้นฐานอะไรมาก่อน

เหมาะกับนักพัฒนาที่เคยใช้ NestJS มาแล้วและอยากต่อยอดไปทำงานกับฐานข้อมูล Web API ระบบล็อกอิน และการทดสอบแบบงานจริง รวมถึงทีมที่ต้องการอัปเดตโปรเจกต์เดิมเป็น NestJS 12 ครู อาจารย์ และนักศึกษาสายคอมพิวเตอร์ ควรสร้างโปรเจกต์ NestJS และเขียน Module, Controller และ Service ได้ เขียน TypeScript ได้ และรู้จักคำสั่ง SQL พื้นฐาน เพราะหลักสูตรเริ่มจากการเชื่อมฐานข้อมูลทันที

เรียนจบหลักสูตร Advanced NestJS แล้วทำอะไรได้บ้าง

เชื่อม NestJS กับ MySQL ผ่าน TypeORM 1.x ออกแบบ Entity และ Relation เขียน Query ขั้นสูง จัดการ Migration และ Transaction ออกแบบ RESTful API พร้อม DTO, Validation และเอกสาร OpenAPI ทำระบบล็อกอินด้วย JWT พร้อม Guard, Role และ Refresh Token เพิ่ม Cache และ Rate Limit เขียน Unit และ E2E Test ด้วย Vitest และนำแอปขึ้น Docker ผู้ผ่านการอบรมได้รับใบประกาศนียบัตร (Certificate of Completion) ที่มีเลขที่ของตัวเองและตรวจสอบออนไลน์ได้

จัดอบรมหลักสูตร Advanced NestJS ให้ทีมในองค์กรได้ไหม

ได้ หลักสูตรนี้จัดเป็นการอบรมแบบ In-house ให้ทีมในองค์กรได้ และปรับตัวอย่างให้ตรงกับงานของทีม เช่น ใช้โครงสร้างฐานข้อมูลหรือ API ที่ทีมกำลังพัฒนาเป็นโจทย์ หรือเน้นการอัปเกรดโปรเจกต์เดิมเป็น NestJS 12 ขอใบเสนอราคาได้จากหน้านี้ หรือติดต่อทาง LINE @itgenius โทร 02-570-8449