[graphQL] apollo서버 모듈화

seokki kwon·2022년 9월 1일
0

graphQL

목록 보기
6/7

아폴로 서버 모듈화

3-1-server-modularized
├─ data-in-csv
│  ├─ equipments.csv
│  ├─ people.csv
│  ├─ roles.csv
│  ├─ softwares.csv
│  ├─ supplies.csv
│  └─ teams.csv
├─ database.js
├─ dbWorks.js
├─ index.js
├─ package-lock.json
├─ package.json
└─ typedefs-resolvers
   ├─ _mutations.js
   ├─ _queries.js
   ├─ equipments.js
   └─ supplice.js

typesdefs-resolvers
폴더에 각각의 typedefs 와 resolver 를 모아둠

아폴로 서버객체에 typeDefs 와 resolver는 배열, 객체로 들어갈 수 있음

const { gql } = require('apollo-server')

const typeDefs = gql`
    type Query {
        equipments: [Equipment]
    }
`

module.exports = typeDefs

typesDefs를 export 해주고

const { ApolloServer } = require('apollo-server')
const _ = require('lodash')

const queries = require('./typedefs-resolvers/_queries')
const mutations = require('./typedefs-resolvers/_mutations')
const equipments = require('./typedefs-resolvers/equipments')
const supply = require('./typedefs-resolvers/supplice');
const typeDefs = [
    queries,
    mutations,
    equipments.typeDefs,
    supply.typeDefs
]

const resolvers = [
    equipments.resolvers,
    supply.resolvers
]

const server =  new ApolloServer({typeDefs, resolvers})

server.listen().then(({url}) => {
    console.log(`🚀  Server ready at ${url}`)
})

index.js 에서 통합하여 아폴로 서버객체에 넣어주면 된닫
쿼리가 많아질때 분리하여 모듈화를 하면 편함

profile
웹 & 앱개발 기록

0개의 댓글