สร้าง RESTFul API ด้วย ExpressJS กับ MySQL ด้วยวิธีการเขียน Object Relational Mapping (ORM) โดยใช้ Library ที่ชื่อว่า sequelizejs

เตรียมเครื่องมือ

  • MySQL เลือกใช้ Library ดัง mysqljs
  • ORM เลือกใช้ sequelize ที่เป็นที่นิยมมากเรื่องจัดการ Database
  • Web Framework เลือกใช้ ExpressJS ซึ่ง Mean Stack จะพูดถึงกันบ่อยมาก เพราะเป็น 1 ใน 4 จตุรเทพแห่ง Javascript เลย *MEAN
  • Editor เลือกใช้ VS Code
  • Postman เครื่องมือ API Client tool เอาไว้ Test ยิง API

เริ่มสร้าง Table blog เก็บ Data

สร้าง Project และเพิ่ม dependencies เหล่านี้เข้าไปในไฟล์ package.json และ ใช้คำสั่ง npm install รอสักครู่…

กำหนดโครงสร้าง Project ตามนี้

โดยกำหนดให้

  • model เก็บ file mapping class กับ table ใน database
  • node_modules เก็บ dependencies ต่าง ๆ
  • routes เก็บ file routing url ของ api
  • util เก็บ file utility ต่าง ๆ ที่สร้างไว้ใช้งานใน Project ในนี้เราจะใช้เก็บไฟล์ connection และ constant ในการต่อ database และส่วนค่าอื่น ๆ ถ้ามีการเพิ่มเติม
  • app.js เป็น file สร้าง server run และกำหนดค่า config ของ server ถือเป็นไฟล์ใช้งานหลัก
  • package.json เป็น file จัดการ dependencies จะสัมพันธ์กับ node_modules เพราะเป็นผลจากการสั่ง install file นี้

ไฟล์ app.js

ไฟล์ util/env.js จะให้เป็นไฟล์กำหนดค่า config ของการ connect Database

ไฟล์ util/db.config.js เป็นไฟล์ Connect Database โดยจะเพิ่ม Code ส่วนการกำหนด Mapping Table ในที่นี้ด้วย

ไฟล์ model/blog.js เราจะ define structure ของ Table และกำหนดชื่อ column ,ชื่อ Property และ ประเภทข้อมูล จากไฟล์นี้

ไฟล์ route/blog.js ใช้สำหรับกำหนด routing api ในที่นี้จะกำหนดตามนี้
เรียกข้อมูลของ Blog ทั้งหมด: [GET] http://localhost:3000/blog/find/all
เรียกข้อมูล Blog ด้วย Id: [GET] http://localhost:3000/blog/find/id/:id
สร้างข้อมูล Blog ใหม่: [POST] http://localhost:3000/blog/create
แก้ไขข้อมูล Blog เดิม: [PUST] http://localhost:3000/blog/update/:id
ลบข้อมูล Blog ในระบบ: [DELETE] http://localhost:3000/blog/delete/:id

ทดสอบเรียก api

  • สั่ง nodemon app.js
  • เรียก Postman

Create New Blog

Get Blogs

Get Blog By ID = 1000

Update Blog ID = 1000

Delete Blog Id = 1000

ขอบคุณที่ติดตามบทความนี้ อย่าลืม Clap ให้เพื่อเป็นกำลังใจด้วยนะครับ

Written by

Senior Developer @Telecom, Full Stack Developer [Subscribe Me @poolsawat.com]

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store