นำ Rest API ต่อกับ MySQL
ทวนโจทย์ใน API เดิมของเรา (จากบทที่ 9) เราได้สร้างมาทั้งหมด 5 paths ตามนี้
GET /users
สำหรับ get users ทั้งหมดที่บันทึกเข้าไปออกมาPOST /users
สำหรับการสร้าง users ใหม่บันทึกเข้าไปGET /users/:id
สำหรับการดึง users รายคนออกมาPUT /users/:id
สำหรับการแก้ไข users รายคน (ตาม id ที่บันทึกเข้าไป)DELETE /users/:id
สำหรับการลบ users รายคน (ตาม id ที่บันทึกเข้าไป)
เราจะนำทั้ง 5 path นี้ต่อเข้ากับ mysql จริงๆออกมา
- แต่เพื่อให้ code การต่อ mysql อำนวยความสะดวกยิ่งขึ้น เราจะทำการสร้าง function เพื่อทำการ connect mysql เอาไว้ก่อน และเราจะเปลี่ยนแค่ code ตรงกลางเท่านั้น
- ทำการลบตัวแปร users, counter ออก เนื่องจากเราจะเปลี่ยนจาก Mock เป็นการต่อฐานข้อมูลแล้ว (ไม่ได้ใช้แล้ว)
const express = require('express')
const app = express()
const bodyParser = require('body-parser')
const mysql = require('mysql2/promise')
app.use(bodyParser.json())
let conn = null
// function connectMySQL
const connectMySQL = async () => {
conn = await mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'yourdb'
})
}
/* เปลี่ยนแค่ code ตรงนี้ */
app.listen(8000, async () => {
// เรียกใช้ connectMySQL ตอน start server
await connectMySQL()
console.log('Server started on port 8000')
})
เดี๋ยวเราจะมาเรียนรู้ไปพร้อมกัน 2 เรื่อง
- การทำตามโจทย์ของ API
- การ handle error (ในกรณีเกิดเคสที่ไม่ถูกต้องเกิดขึ้น) ** และเป็น core งานหลักของ Backend