[prismagram] [BackEnd] 2. typeDefs, Resolvers 만들기
업데이트:
모든 내용은 MacOS Catalina 기준으로 작성되었습니다
1. morgan 설치하기
- logging module인 morgan을 추가합니다.
yarn add morgan
- server.js에 morgan을 추가합니다.
import logger from "morgan";
server.express.use(logger("dev"));
- morgan을 추가하면 console에 다음과 같이 실시간으로 포트가 출력됩니다.
POST / 200 121.032 ms - 25787
POST / 200 22.315 ms - 25787
GET / 200 0.159 ms - -
POST / 200 17.741 ms - 25787
POST / 200 7.500 ms - 25786
POST / 200 6.661 ms - 25786
GET / 200 0.104 ms - -
morgan은 logging module 인데, graphql 서버에는 express 서버가 내장되어 있습니다.
이때 모든 파일은 schema.js에서 합칩니다. api폴더에 필요한 graphql, resolvers파일을 계속 추가하여 구조를 만들겁니다.
2. merge 에 필요한 라이브러리 설치
yarn add graphql-tools merge-graphql-schemas
import path from 'path';
import {makeExecutableSchema} from 'graphql-tools';
import {fileLoader , mergeResolvers,mergeTypes} from 'merge-graphql-schemas';
fileLoader : 인자로 경로를 받아 파일을 불러옵니다.
path.join : 해당 경로의 파일들을 가져옵니다.
makeExecutabelSchema : type, resolver를 schema 형태로 만들어 줍니다.
3. schema를 서버에서 사용하기
서버에서 불러오기
server.js에 다음을 추가합니다.
import schema from './schema';
실행하기
schema로 서버를 실행시킵니다.
const server = new GraphQLServer({schema});
이슈
Query를 찾을 수 없다고 하는 에러.
server.js, schema.js파일은 api 밖에 있어야 합니다.
댓글남기기