/Projects
PERN Stack
ProjectsCS ChallengeFull-StackPERN Stack

PERN Stack

ใช้ใน Challenge Day 3

PERN คือชุดเครื่องมือ 4 ตัวที่ใช้ทำเว็บ full-stack ด้วย JavaScript ทั้งระบบ: หน้าเว็บ (React) เรียก API (Express บน Node.js) แล้ว API ไปอ่านเขียนฐานข้อมูล (PostgreSQL)

At a glance

ตัวอักษรเครื่องมือชั้นหน้าที่
PPostgreSQLDatabaseเก็บข้อมูลสินค้า ออเดอร์
EExpressBackendAPI: กำหนดว่า URL ไหนทำอะไร
RReactFrontendหน้าเว็บที่ผู้ใช้เห็น (ในคอร์สใช้ผ่าน Next.js)
NNode.jsRuntimeรัน JavaScript บนเซิร์ฟเวอร์

How it works

React (เบราว์เซอร์)  ──fetch("/api/products")──▶  Express บน Node.js  ──SQL──▶  PostgreSQL
                     ◀────────── JSON ──────────                     ◀── rows ──
  • ผู้ใช้เปิดหน้าร้าน React ส่ง request ไปที่ GET /api/products
  • Express รับ request แล้วส่งคำสั่ง SQL ไปที่ PostgreSQL
  • PostgreSQL ตอบกลับเป็นแถวข้อมูล Express แปลงเป็น JSON ส่งกลับ
  • React เอา JSON มาแสดงเป็นการ์ดสินค้า

ทำไมต้องมี API คั่นกลางหน้าเว็บไม่เคยคุยกับฐานข้อมูลตรง ๆ รหัสฐานข้อมูลอยู่ที่เซิร์ฟเวอร์เท่านั้น ผู้ใช้จึงมองไม่เห็น

Project structure

แยกเป็น 2 โปรเจกต์ใน repo เดียว รันคนละพอร์ต

shop/
├── client/        ← Next.js (React)   http://localhost:3000
└── server/        ← Express (Node.js) http://localhost:4000
    ├── .env       ← DATABASE_URL ของ PostgreSQL
    ├── db.js
    └── index.js

PERN กับ Nextbase ต่างกันอย่างไร

PERN Stack[Nextbase](/projects/cs-challenge/nextbase)
หลังบ้านเขียน API เองด้วย Expressไม่ต้องเขียน ใช้ Supabase
คุยกับฐานข้อมูลSQL ผ่าน pgsupabase-js
เห็นอะไรเห็นทุกชั้นของระบบ เหมาะกับการเรียนพื้นฐานทำได้เร็ว เหมาะกับ MVP และ hackathon
รันกี่ตัว2 (client + server)1 (Next.js)

ฝึกต่อ

เว็บสำหรับลงมือทำ

วิดีโอเรียนเอง

Next steps

  • PostgreSQL: สร้างฐานข้อมูล
  • Express: เขียน API
  • Node.js: รัน JavaScript บนเซิร์ฟเวอร์
CS ChallengeLast updated Oct 2026