해결된 질문
작성
·
161
답변 1
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에서 일어나게 되는 것입니다.