Graphql 서버 만들기 및 babel 설정
04 Nov 2020 | react nextGraphql 서버 만들기
babel 설정
※ Server쪽에서 require대신 import로 모듈을 불러오게끔 하는 코드 ※
- npm i nodemon -D
- npm i @babel/cli -D
- npm i @babel/core -D
- npm i @babel/node -D
-
npm i @babel/preset-env -D
- package.json
"scripts": { "start": "nodemon --exec babel-node index.js" }
- 루드디렉토리에서 .babelrc 파일 생성후 작성
{ "presets": [ [ "@babel/preset-env", { "useBuiltIns": "entry", "corejs": 3 } ] ] }
기본적인 작성
new GraphQLServer({}) 안에 Schema를 작성해주거나 여러 기타등등을 넣어줄 수 있다.
Schema란?: 사용자에게 보내거나 사용자로부터 받을data에 대한 설명
을 뜻 한다.
- index.js
import { GraphQLServer } from 'graphql-yoga';
import resolvers from './graphql/resolvers';
const server = new GraphQLServer({
typeDefs: 'graphql/schema.graphql',
resolvers: resolvers,
});
server.start(() => console.log('Graphql Server Running'));
-
graphql > resolvers.js , schema.graphql
-
resolvers.js
- 쿼리 실행 ```javascript const resolvers = { Query: { name: () => ‘정중식’, }, };
export default resolvers;
- schema.graphql
- 쿼리 타입 정의
- 느낌표 ! 는 필수값이라고 생각하면 됨
```javascript
type Query {
name: String!
}
이런식으로 작성도 가능하다.
Query의 person은 Jung 를 리턴한다.
- schema.graphql
type Jung {
name: String!
age: Int!
gender: String!
}
type Query {
person: Jung!
}
- resolvers.js
const jung = {
name: 'jungsikjeong',
age: 27,
gender: 'female',
};
const resolvers = {
Query: {
person: () => jung,
},
};
export default resolvers;