[graphQL] Resolver

김민재·2024년 4월 8일

GraphQL

목록 보기
5/11

Resolver란?

  • 특정된 것들을 필터링 하기 위한 기능을 해준다.

resolver 함수 생성하기

const schema = makeExecutableSchema({
typeDefs: loadedFiles,
resolvers: {
 Query: {
   posts: async (parent, args, context, info) => {
     // console.log("parent", parent); // 이 필드의 부모에 대한 resolver의 반환 값
     // console.log("args", args); // 이 필드에 제공된 모든 GraphQL 인수를 포함하는 객체 // postsId 1 필터링을 해준다.
     // console.log("context", context); // 특정 작업에 대해 실행 중인 모든 resolver 간에 공유되는 object
     // console.log("info", info); //
     const posts = await Promise.resolve(parent.posts);
     return posts; // parent에 있는 posts를 보여준다
   },
   comments: async (parent) => {
     const comments = await Promise.resolve(parent.comments);
     return await comments; // parent에 있는 comments를 보여준다
   },
 },
},
});
  • parent: 정보를 보여준다.

  • args: 필터링을 가능하게 인자를 받을 수 있다.

  • context: 인증에 관련된 정보 처리가 가능하다.

  • info: 실행 상태에 대한 정보를 보여준다.
  const posts = await Promise.resolve(parent.posts);
        return posts; // parent에 있는 posts를 보여준다
      },
      comments: async (parent) => {
        const comments = await Promise.resolve(parent.comments);
        return await comments; // parent에 있는 comments를 보여준다
  • 위 문법 설명
    async 함수는 항상 프로미스를 반환한다. 프로미스가 아닌 값을 반환하더라도 이행 상태의 프로미스(resolved promise)로 값을 감싸 이행된 프라미스가 반환되도록 한다.
profile
개발 경험치 쌓는 곳

0개의 댓글