mysql(4) 개인정보 수정

Creating the dots·2021년 10월 5일
0

project-1-dagachi

목록 보기
4/11

마이페이지에서 주소, 비밀번호를 변경할 수 있도록 했는데, 고려해야할 것들이 몇가지 있다.

  • 주소만 변경하는 경우
  • 비밀번호만 변경하는 경우
  • 둘 다 변경하는 경우
  • UPDATE를 쓸때 가장 중요한 WHERE 조건

우선, WHERE 조건은 어떤 것을 변경하더라도 const userId = req.body.userId로 객체구조분해할당하여 저장해 WHERE문에 작성해주었다.

또한, 주소만 또는 비밀번호만 또는 둘다 변경하는 경우의 구분은 if문으로 구분했다. 처음에는 첫번째 try 블록if문처럼 작성했는데 그 결과 하나만 변경하는 경우 데이터베이스가 null로 변경되었다. 따라서 if문으로 구분해서 작성해주었다.

const db = require("../../db");

module.exports = async (req, res) => {
  try {
    const { address, password, userId } = req.body;
    if (address && password) {
      const sql = "UPDATE users SET address=?, password=? WHERE userId=?";
      const params = [address, password, userId];
      db.query(sql, params, (err, result) => {
        if (err) throw err;
        else {
          res.status(200).json({
            data: result,
            message: "주소와 비밀번호가 모두 수정되었습니다",
          });
        }
      });
    }
    if (address) {
      const sql = "UPDATE users SET address=? WHERE userId=?";
      const params = [address, userId];
      db.query(sql, params, (err, result) => {
        if (err) throw err;
        else {
          res
            .status(200)
            .json({ data: result, message: "주소정보가 수정되었습니다" });
        }
      });
    }
    if (password) {
      const sql = "UPDATE users SET password=? WHERE userId=?";
      const params = [password, userId];
      db.query(sql, params, (err, result) => {
        if (err) throw err;
        else {
          res
            .status(200)
            .json({ data: result, message: "비밀번호가 수정되었습니다" });
        }
      });
    }
  } catch (err) {
    throw err;
  }
};
profile
어제보다 나은 오늘을 만드는 중

0개의 댓글