인프런 커뮤니티 질문&답변

Inpa Skyrim님의 프로필 이미지
Inpa Skyrim

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

관계 쿼리 알아보기

user 객체 읽는법

작성

·

219

0

let { User, Comment } = require('./models');
let user = await User.findOne({
      include: [{
         model: Comment,
      }]
   });
   console.log("===================================================================================================")
   console.log(user)
   console.log(user.comment)
===================================================================================================
User {
  dataValues: {
    id: 1,
    name: 'zero',
    age: 24,
    married: false,
    comment: '자기소개1',
    created_at: 2021-11-09T09:05:55.000Z,
    Comments: [ [Comment] ]
  },
  _previousDataValues: {
    id: 1,
    name: 'zero',
    age: 24,
    married: false,
    comment: '자기소개1',
    created_at: 2021-11-09T09:05:55.000Z,
    Comments: [ [Comment] ]
  },
  _changed: Set(0) {},
  _options: {
    isNewRecord: false,
    _schema: null,
    _schemaDelimiter: '',
    include: [ [Object] ],
    includeNames: [ 'Comments' ],
    includeMap: { Comments: [Object] },
    includeValidated: true,
    attributes: [ 'id', 'name', 'age', 'married', 'comment', 'created_at' ],
    raw: true
  },
  isNewRecord: false,
  Comments: [
    Comment {
      dataValues: [Object],
      _previousDataValues: [Object],
      _changed: Set(0) {},
      _options: [Object],
      isNewRecord: false
    }
  ]
}
자기소개1

 

1번 질문 :

user객체를 쳤더니 저런식으로 나오는데,
어떻게 객체안의 키들을 거쳐서 user.comment가 나오는지 과정좀 설명해 주실수 있나요?

일단 제가 생각해본 봐로는
user.comment하면
User.dataValues.comment로 되는것 같아요. 근데 객체생김새가 다른데 어떻게 저렇게 되는지 궁금하네요..

 

2번 질문 :

그리고 user.Comments.comment(댓글 테이블의 comment필드)를 조회해보면 undefined 뜨네요. 어떻게 조회하나요?
(참고로 워크밴치에서 따로 제가 comment테이블에 insert into로 해주고, 서버도 다시 시작하였습니다)

답변 2

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네, user 속성에 접근하면 dataValues의 속성을 가져오는 게 맞습니다. 다양한 방식으로 가져올 수 있습니다. 실제로는 dataValues 속성에 접근하는 경우는 거의 드뭅니다. 바로 user.nickname 이런 식으로 가져오죠.

https://sequelize.org/master/class/lib/model.js~Model.html

0

Inpa Skyrim님의 프로필 이미지
Inpa Skyrim
질문자

2번 질문은 자세히 보니까, 배열안에 넣어져있어서,
user.Comments[0].comment
로 해결하였습니다!

Inpa Skyrim님의 프로필 이미지
Inpa Skyrim

작성한 질문수

질문하기