-
#1.2 전문가처럼 서버 설정인스타그램 클론 코딩/#1 설정 2019. 12. 15. 22:32
- yarn add morgan
- logger(로깅 전용 모듈)임
GraphQLServer 엔 express 서버가 내장되어있는데,아래와 같이 express 미들웨어를 설정해줄수있다.
logger괄호안의 dev는 옵션임
require("dotenv").config(); import { GraphQLServer } from "graphql-yoga"; import logger from "morgan"; const server = new GraphQLServer({ typeDefs, resolvers }); server.express.use(logger("dev"));
- src>api 폴더를 만든후 폴더 안에 schema.js파일 및 resolver.js (여기선 .js파일)파일을 만듦
yarn add graphql-tools merge-graphql-schemas 등등 설치
- sayHello.graphql
type Query { sayHello: String! }
- sayHello.js
export default { Query: { sayHello: () => "Hello" } };
sayGoodbye 파일들도 똑같음
schema.js 의 중요성!!
src>schema.js
import path from "path"; import { makeExecutableSchema } from "graphql-tools"; import { fileLoader, mergeResolvers, mergeTypes } from "merge-graphql-schemas"; const allTypes = fileLoader(path.join(__dirname, "/api/**/*.graphql")); const allResolvers = fileLoader(path.join(__dirname, "/api/**/*.js")); const schema = makeExecutableSchema({ typeDefs: mergeTypes(allTypes), resolvers: mergeResolvers(allResolvers) }); export default schema; // api 폴더의 모든 파일들을 schema 파일에서 한번에 받는것 // api 폴더밑에는 resolver나 graphql이 아닌 파일은 두면 안됨!
src>server.js
require("dotenv").config(); import { GraphQLServer } from "graphql-yoga"; import logger from "morgan"; import schema from "./schema"; const PORT = process.env.PORT || 4000; const server = new GraphQLServer({ schema }); server.express.use(logger("dev")); server.start({ port: PORT }, () => console.log(`✅ Server running on port ${PORT}`) );
!! prisma.yml를 git에 올리면 안됨(url이있기때문) (.gitignore에 작성)
'인스타그램 클론 코딩 > #1 설정' 카테고리의 다른 글
# 1.1 GraphQL 서버 생성 (0) 2019.12.15 #1.0 프로젝트 설정 (0) 2019.12.15 - yarn add morgan