inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Query & Mutation

comments null 출력

해결된 질문

222

yuae114

작성한 질문수 2

0

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

query {

comments {

text

userId

}

}

 

위 쿼리문에서

{

"data": {

"comments": null

}

}

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

apollo graphql mongodb svelte

답변 2

2

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에서 일어나게 되는 것입니다.

 

 

 

 

 

0

carinamon078

"comments null"이라는 입력이 조금 모호해서 정확한 요청을 이해하지 못했습니다. Sprunked

0

Indie Coder

문의를 조금 더 상세히 해주셔야 답변을 드릴 수 있을 것 같습니다.

참고로 해당문의의 경우 resolver로 작성되지 않은 내용에 대한 쿼리 요청으로 발생한 null값에 대한 내용이었습니다.

즉 쿼리 요청에 대한 실제 구현체인 resolver가 없어서 null을 리턴한 부분에 대한 설명이 되겠습니다.

 

프로젝트 실행이 되지 않아 menu API 테스트가 불가합니다 ㅠ

0

134

9

모듈 버전이 안맞아서 발생하는 문제 같습니다;;;

0

188

2

meteor 버전 때문에 실행이 안됩니다.

0

161

2

graghQL의 transaction 처리속도가 궁금합니다.

0

112

2

질문있습니다.

0

108

2

Meteor 실행 오류 문의 드립니다.

0

184

1

Window 환경에서 meteor 설치하는 부분에 대해 실습환경 구축 부분에 추가내용이 없습니다.

0

221

3

리액트에서 적용할 때 질문있습니다.

0

217

1

Upload, 파일사이즈 코드 질문있습니다.

0

262

1

이벤트 함수 on, handle 어떤 기준으로 정하는걸까요?

0

315

1

itemForm에서 Modal바인딩 질문있습니다.

1

182

1

css 파일 질문있습니다

0

178

1

섹션7 디자인요소배치 이후 흰색화면..

0

227

1

accessToken과 리프레시토큰 구현

0

245

2

DISABLE_WEBSOCKETS=true meteor run 실행이 안됩니다.

0

402

2

git bash 환경에서도 meteor run이 안됩니다.

0

293

1

윈도우 meteor run 할 때 에러

0

451

2

notyf를 이용한 알람 효과 / 강의 보완점 및 질문

0

590

1

validate(폼검증) 설정 강의내용 / 코드 보완점 제보

0

561

1

import "/imports/startup"; 에서 문제가 발생했습니다.

0

750

2

DISABLE_WEBSOCKETS=true meteor run 문제

0

532

2

apollo-upload-client 패키지 설치에러 문구

0

494

1

meteor npm i short 설치 에러문구

0

411

1

apollo-cache 조작 방법 / update Item 부분

0

381

1