Mutation 문구가 중복되었을떄 발생한다.
1. 1개의 파일에 Query, Mutation 문구가 있는경우
Post.js
Post {
....
}
extend type Query {
....
}
extend type Mutation {
....
}
extend 문구를 사용해서 파일별로 Mutation, Query를 여러번 선언할 수 있다.
2. Mutation, Query 파일 따로만들기
Mutation.js
type Mutation {
addPost():Boolean!
addUser():Boolean!
....
}
이렇게 1개의 Mutation 문구에 여러개 타입의 함수들을 선언할 수도 있다.
3. 여러개 타입을 여러개 Mutation, Query에 선언
이 경우는 1개의 Mutation, Query 문구로 합쳐주는 모듈을 사용하면 된다.
예제코드는 아래와 같다.
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;
여기서 주의할점은
자동 import기능을 맹신하다가 graphql tools에서 mergeTypes가 아닌 mergeType을 가져오면 낭패가 일어난다. 주의하자!
import { makeExecutableSchema, mergeType, mergeResolvers } from "graphql-tools";
import {fileloader} from "merge-graphql-schemas";
'개발 > Web Programming' 카테고리의 다른 글
CRA error... (0) | 2020.07.29 |
---|---|
Mongoose populate가 동작하지 않는경우 (0) | 2020.07.28 |
DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead. (0) | 2020.07.27 |
Error: Query root type must be provided. (0) | 2020.07.27 |
TypeError: Cannot set property 'subscriptionServerOptions' of undefined (0) | 2020.07.26 |