아폴로 서버 모듈화
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 에서 통합하여 아폴로 서버객체에 넣어주면 된닫
쿼리가 많아질때 분리하여 모듈화를 하면 편함