Express (Node.js) ER_DUP_ENTRY

badasea·2022년 1월 17일
0

Error

목록 보기
2/3
post-thumbnail

회원 가입 기능을 구현할 때 사용자 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
profile
🌊🌊Under the SEA🌊🌊

0개의 댓글