• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

Post 정보에서 태그 정보를 같이 받아오려고 합니다..

22.01.14 22:09 작성 조회수 223

0

안녕하세요 제로초님 노드버드 강좌를 보면서 열심히 공부 중이며 노드버드에서 배운 부분을 조금씩 응용해보려고 하는 중에 질문이 있어서 이렇게 글을 쓰게 되었습니다.
 
우선 수업과 동일하게 Post table, Tag table이 M:N 다대다 관계를 설정하여 PostTag 라는 테이블이 생성되었습니다. 이것을 이용해서 게시글(Post) 정보를 한번에 불러올때 각 게시글마다 존재하는 태그들도 같이 받아오고 싶습니다.
 
제가 시도한 방법으로는 findAll 에서 include를 이용해서 받아오려고 했지만 실패했습니다. 제가 설정한 관계와는 맞지 않는 코드의 형태로 에러 메세지가 나오는 것 같습니다.
 
sql 쿼리문의 조인에 대해 지식이 부족하다고 생각하여 조인 부분을 찾아보고 공부를 해도 sequelize 로 어떤식으로 풀어가야 할 지 모르겠습니다 ㅠㅠ

먼저 테이블 정보 입니다.
 
제가 작성한 코드 부분입니다.
 
마지막으로 에러메세지 입니다

답변 2

·

답변을 작성해보세요.

1

임성규님의 프로필

임성규

질문자

2022.01.15

말씀해주신 Tag를 include를 했는데 posts 값이 빈 배열로 나오는 부분은 where에 조건을 넣어주어야 하는건가요..?

attributes: name 부분 빼보세요.

임성규님의 프로필

임성규

질문자

2022.01.16

말씀해주신 attributes: name 제거 후에 빈 배열로 값이 나와서 찾아보다가 

db.Sequezlie = Sequelize; 를 추가했더니 되었습니다.. 이 구문이 어떤것을 의미하는 지 알 수 있을까요? 

 

아래 이미지에서는 35번 줄 입니다!

 

저 자체로는 의미가 없고요. 저걸 가져다 쓰는 쪽이 있어야 의미가 있습니다.

const { Sequelize } = require('../modles') 이런 식으로요.

1

PostTag를 include하는게 아니라 Tag를 바로 include하셔야 합니다. Post-PostTag는 1:N관계로 이렇게 하면 N:M 관계를 만들어둔 의미가 없어집니다.