해결된 질문
작성
·
205
답변 2
2
예제의 경우 예를 들어 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
문의를 조금 더 상세히 해주셔야 답변을 드릴 수 있을 것 같습니다.
참고로 해당문의의 경우 resolver로 작성되지 않은 내용에 대한 쿼리 요청으로 발생한 null값에 대한 내용이었습니다.
즉 쿼리 요청에 대한 실제 구현체인 resolver가 없어서 null을 리턴한 부분에 대한 설명이 되겠습니다.