항해99 4기 Day 46 TIL

POINT·2021년 12월 16일
0

항해99

목록 보기
19/34

21.12.16 항해99 4기 46일차
어제 백엔드 개발이 끝나서 추가로 개발할 것들을 의논하고 있었는데 프론트엔드 개발된 것과 서버통신하는 과정에서 몇가지 문제점이 발견되어서 고치느라 하루를 보냈다.
그리고 코드리뷰를 하면서 이미지를 서버에 저장하는 방식을 배웠다.

발생한 문제와 해결 방법

  • sequelize로 find로 DB에서 가져온 데이터의 형태가 달라서 생긴 문제
    기존 mongoDB는 데이터를 find로 가져오면 Json형태라서 그대로 프론트에게 reponse에 담아 보내주면 됐는데, 이번에 DB를 mysql을 사용하면서 sequelize findAll, findOne으로 데이터를 가져오면 형태가 Json형태로 DB에 저장된 정보만 오는게 아니라 다른 상태정보도 같이 와서 문제가 생겼다.
    postman으로 테스트했을 때는 정상적으로 보여서 백엔드 문제가 아니라고 생각했는데 서버 터미널에 데이터값을 console.log로 찍어봐서 알았다. postman은 알아서 정보를 가공하여 보여주는 것 같다.
    이 문제는 따로 api부분에서 정보를 가공하여 보내줬다.
{ // mongoDB를 사용하고, sequelize 사용하지 않은 data
  userId: '1',
  userEmail: 'test@test.com',
  userName: 'test',
  nickname: 'test1',
  imageUrl_profile: null,
  introduce: null,
  phoneNumber: null
}


{ // sequelize로 가져온 data
  dataValues: {
    userId: 1,
    userEmail: 'test@test.com',
    userName: 'test',
    nickname: 'test1',
    imageUrl_profile: null,
    introduce: null,
    phoneNumber: null
  },
  _previousDataValues: {
    userId: 1,
    userEmail: 'test@test.com',
    userName: 'test',
    nickname: 'test1',
    imageUrl_profile: null,
    introduce: null,
    phoneNumber: null
  },
  uniqno: 1,
  _changed: Set(0) {},
  _options: {
    isNewRecord: false,
    _schema: null,
    _schemaDelimiter: '',
    raw: true,
    attributes: [
      'userId',
      'userEmail',
      'userName',
      'nickname',
      'imageUrl_profile',
      'introduce',
      'phoneNumber'
    ]
  },
  isNewRecord: false
}
profile
기록은 기억을 지배한다.

0개의 댓글