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

yuae114님의 프로필 이미지
yuae114

작성한 질문수

GraphQL 완전정복 (키오스크를 만들며 배우는 풀스택 과정) - [2024 부분 리뉴얼]

Query & Mutation

comments null 출력

해결된 질문

작성

·

161

0

안녕하세요! 다른 쿼리문은 잘 출력되는데 comments만 계속 null이 뜹니다.

query {

comments {

text

userId

}

}

 

위 쿼리문에서

{

"data": {

"comments": null

}

}

널값이 출력됩니다. 다른 쿼리문은 수업 내용과 같이 출력되고, mutation까지 잘 진행됐는데 코멘트만 null이 떠서 질문 남깁니다. 제가 무슨 실수를 한걸까요?ㅠㅠ

답변 1

2

Indie Coder님의 프로필 이미지
Indie Coder
지식공유자

예제의 경우 예를 들어 api/board/resolvers_origin.js 을 보시면

기본적으로 resolver로 정의된 Query는 posts와 users뿐입니다.

  Query: {
    async posts(_, {_id}, context, info) {
      count_ = 0;
  
      let filters = {};
  
      if(_id) filters = {_id};
  
      console.log('posts query' + count_++)
      return await Posts.find(filters).fetch();
    },
    async users() {
      return await Meteor.users.find().fetch();
    },
  },

그리고 comment의 경우는 다음과 같이 post의 하위 필드로만 정의되어 있습니다.

  Post: {
    async comments(parent, args, context, info) {
      console.log('posts query' + count_++)
      console.log(`comment parent: ${JSON.stringify(parent)}`);
      return await Comments.find({postId: parent._id}).fetch();
    },

 

따라서 문의하신 것 처럼 직접적으로 Query로 comment를 호출하기 위해서는 resolver의 Query: { } 에 comment를 추가해야 합니다.

즉 schema에 정의되어 있다고 하더라고 실제 작동하는 resolver에 기능을 만들지 않으면 query는 작동하지 않는다고 이해하시면 됩니다. schema는 말그대로 구조를 정의하는 것이고 그 구조대로 실제 동작하는 기능은 resolver에서 일어나게 되는 것입니다.

 

 

 

 

 

yuae114님의 프로필 이미지
yuae114

작성한 질문수

질문하기