회원 가입 기능을 구현할 때 사용자 id 혹은 이메일이 중복이 발생하면 안되기 때문에 칼럼 속 데이터 중복을 제거하기 위한 UNIQUE 선언이 필연적이다.
이에 일반적인 post 형식으로 데이터를 선언하여 서버로 전달하게 되면 서버앱이 꺼지는 현상이 발생하여 기록하게 되었다.
DB INSERT 시 UNIQUE 데이터 값이 중복시 서버 꺼짐 현상
Express(Node.js) + Mysql (4) Rest API Post Method 코드 참고
https://velog.io/@badasea/ExpressNode.js-Mysql-4-Rest-API-Post-Method
컨트롤러
controller/user.controller.js
**원래 소스 코드**
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.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);
return;
} else {
res.json({
data: user,
});
}
});
}
};
err 값에 return 값을 추가해준다.
return