강의

멘토링

커뮤니티

Inflearn Community Q&A

jeffbk07101742's profile image
jeffbk07101742

asked

[Renewed] Node.js Textbook - From Basics to Project Practice

Learn about relationship queries

user 객체 읽는법

Written on

·

271

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로 해주고, 서버도 다시 시작하였습니다)

nodejsmysqlmongodbSequelize

Answer 2

0

zerocho님의 프로필 이미지
zerocho
Instructor

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

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

0

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

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

jeffbk07101742's profile image
jeffbk07101742

asked

Ask a question