Express(Node.js) + Mysql (6) Rest API Update Method 호출하기
User Table
user_id | user_email | user_name | user_password |
---|---|---|---|
1 | 1 | bada | 1 |
2 | 2 | 2 | 2 |
모델
models/user.js
"use strict";
const mysql = require("../config/mysql");
let User = function (user) {
this.user_id = user.user_id;
this.user_email = user.user_email;
this.user_name = user.user_name;
this.user_password = user.user_password;
};
// 모든 사용자 검색
User.findAll = function (result) {
mysql.query("Select * from user", function (err, res) {
if (err) {
console.log("error: ", err);
result(null, err);
} else {
console.log("employees : ", res);
result(null, res);
}
});
};
// 특정 사용자 검색
User.findById = function (id, result) {
mysql.query("Select * from user where user_id = ? ", id, function (err, res) {
if (err) {
console.log("error: ", err);
result(err, null);
} else {
result(null, res);
}
});
};
// 사용자 등록
User.create = function (newEmp, result) {
mysql.query("INSERT INTO user set ?", newEmp, function (err, res) {
if (err) {
console.log("error: ", err);
result(err, null);
} else {
console.log(res.insertId);
result(null, res.insertId);
}
});
};
// 사용자 삭제
User.delete = function (id, result) {
mysql.query("DELETE FROM user WHERE user_id = ?", [id], function (err, res) {
if (err) {
console.log("error: ", err);
result(null, err);
} else {
result(null, res);
}
});
};
**추가**
// 사용자 정보 업데이트
User.update = function (id, user, result) {
mysql.query(
"UPDATE user SET user_id=?,user_name=?,user_email=?,user_password=? WHERE id = ?",
[user.user_id, user.user_name, user.user_email, user.user_password, id],
function (err, res) {
if (err) {
console.log("error: ", err);
result(null, err);
} else {
result(null, res);
}
}
);
};
module.exports = User;
컨트롤러
controller/user.controller.js
"use strict";
const User = require("../models/user");
exports.findAll = function (req, res) {
User.findAll(function (err, user) {
console.log("controller");
if (err) res.send(err);
console.log("res", user);
res.send(user);
});
};
exports.findById = function (req, res) {
User.findById(req.params.id, function (err, user) {
if (err) res.send(err);
res.json(user);
});
};
exports.create = function (req, res) {
const new_user = new User(req.body);
//handles null error
if (req.body.constructor === Object && Object.keys(req.body).length === 0) {
res
.status(400)
.send({ error: true, message: "Please provide all required field" });
} else {
User.create(new_user, function (err, user) {
if (err) res.send(err);
res.json({
data: user,
});
});
}
};
exports.delete = function (req, res) {
User.delete(req.params.id, function (err, user) {
if (err) res.send(err);
res.json({ message: "User successfully deleted" });
});
};
**추가**
exports.update = function (req, res) {
if (req.body.constructor === Object && Object.keys(req.body).length === 0) {
res
.status(400)
.send({ error: true, message: "Please provide all required field" });
} else {
User.update(req.params.id, new Employee(req.body), function (err, user) {
if (err) res.send(err);
res.json({ message: "User successfully updated" });
});
}
};
라우터
routes/user.routes.js
const express = require("express");
const router = express.Router();
const UserController = require("../controllers/user.controller");
router.get("/", UserController.findAll);
router.get("/:id", UserController.findById);
router.post("/", UserController.create);
router.delete("/:id", UserController.delete);
router.put('/:id', UserController.update);**추가**
module.exports = router;
Update Method 호출 결과
Update (update)
http://localhost:3001/api/user/1
{"user_email":"bada@email.com","user_name":"bada","user_password":"1234"}
GET (findAll)
http://localhost:3001/api/user
[{"user_id":1,"user_email":"bada@email.com","user_name":"bada","user_password":"1234"},{"user_id":2,"user_email":"2","user_name":"2","user_password":"2"}]