// Get all usersapp.get('/users',(req,res,next)=>{try{connection.query('SELECT * FROM `users`',(err,results,fields)=>{if (err){returnres.status(500).json({message:"Database error",error:err});}res.status(200).json(results);});}catch (error){res.status(400).json({message:"get user was failed",error:error.message});}})// Get user by idapp.get('/users/:id',(req,res,next)=>{try{constid=req.params.id;connection.query('SELECT * FROM `users` WHERE `id` = ?',[id],(err,results)=>{if (err){returnres.status(500).json({message:"Database error",error:err});}if (results.length===0){returnres.status(404).json({message:"User not found"});}res.status(200).json({payload:results});});}catch (error){res.status(400).json({message:"get user by id was failed",error:error.message});}})
🧪 ทดสอบ API
GET http://localhost:5000/users
GET http://localhost:5000/users/1
Section 2-3 - ➕ CREATE USER
➕ สร้าง User ใหม่
เพิ่มในไฟล์: index.js
app.post('/users',(req,res,next)=>{try{const{fname,lname,username,password,avatar}=req.body;connection.query('INSERT INTO `users`(`fname`, `lname`, `username`, `password`, `avatar`) VALUES (?, ?, ?, ?, ?)',[fname,lname,username,password,avatar],(err,results)=>{if (err){returnres.status(500).json({message:"create user was failed",error:err.message});}res.status(201).json({message:"create user was successfully",payload:results});});}catch (error){res.status(400).json({message:"create user was failed",error:error.message});}})
🔍 อธิบายโค้ด:
INSERT INTO - คำสั่ง SQL สำหรับเพิ่มข้อมูล
? - Placeholder สำหรับป้องกัน SQL injection
status(201) - HTTP status code สำหรับการสร้างข้อมูลสำเร็จ
app.put('/users/:id',(req,res,next)=>{try{constid=req.params.id;const{fname,lname,username,password,avatar}=req.body;connection.query('UPDATE `users` SET `fname`= ?, `lname`= ?, `username`= ?, `password`= ?, `avatar`= ? WHERE id = ?',[fname,lname,username,password,avatar,id],(err,results)=>{if (err){returnres.status(500).json({message:"update user was failed",error:err.message});}if (results.affectedRows===0){returnres.status(404).json({message:"User not found"});}res.status(200).json({message:"update user was successfully",payload:results});});}catch (error){res.status(400).json({message:"update user was failed",error:error.message});}})
app.delete('/users/:id',(req,res,next)=>{try{constid=req.params.id;connection.query('DELETE FROM `users` WHERE id = ?',[id],(err,results)=>{if (err){returnres.status(500).json({message:"delete user was failed",error:err.message});}if (results.affectedRows===0){returnres.status(404).json({message:"User not found"});}res.status(200).json({message:"delete user was successfully",payload:results});});}catch (error){res.status(400).json({message:"delete user was failed",error:error.message});}})
🔍 อธิบายโค้ด:
DELETE FROM - คำสั่ง SQL สำหรับลบข้อมูล
affectedRows - จำนวนแถวที่ถูกลบ (0 = ไม่พบข้อมูล)
🧪 ทดสอบ API
DELETE http://localhost:5000/users/1
🎉 สรุป Module 2
เราได้เรียนรู้การเชื่อมต่อและใช้งาน MySQL Database กับ Express ครบทั้ง CRUD Operations: