У меня есть ситуация, когда у меня есть схема и револьверы сидят в разных файлах.Я импортировал схему и преобразователь в файл server.js, который отвечает за создание сервера apollo.На данный момент один набор распознавателя и запросов, который я импортирую, а другой набор запросов и распознавателя уже находится в файле server.js.
Это содержимое файла server.js.
import "graphql-import-node";
import { ApolloServer, gql } from "apollo-server";
import { makeExecutableSchema } from "graphql-tools";
import merge from "lodash/merge";
import GithubFetchHelper from "./github/GithubFetchHelper";
import {
resolvers as GithubResolvers,
typeDefs as GithubTypeDef
} from "./github";
/**
* Error Handler. Provides full stack - remove for production
*/
const books = [
{
title: "Harry Potter and the Chamber of Secrets",
author: "J.K. Rowling"
},
{
title: "Jurassic Park",
author: "Michael Crichton"
}
];
const typeDefs = gql`
# Comments in GraphQL are defined with the hash (#) symbol.
# This "Book" type can be used in other type declarations.
type Book {
title: String
author: String
}
# The "Query" type is the root of all GraphQL queries.
# (A "Mutation" type will be covered later on.)
type Query {
books: [Book]
}
`;
const resolvers = {
Query: {
books: () => books
}
};
// typeDefs: [
// project.typeDefs,
// task.typeDefs,
// search.typeDefs
// ].join(' '),
// resolvers: merge({}, project.resolvers, task.resolvers, search.resolvers),
// context: {
// models: {
// project: project.model,
// task: task.model
// },
// loaders: loaders()
// }
const server = new ApolloServer({
typeDefs: [typeDefs, GithubTypeDef],
resolvers: merge({}, resolvers, GithubResolvers),
dataSources: () => {
return {
gitHubApi: new GithubFetchHelper()
};
}
});
server.listen().then(({ url }) => {
console.log(`? Server ready at ${url}`);
});
export default server;
Теперь, когда я запускаю сервер, я получаю следующую ошибку.Любая помощь приветствуется.
Error: Type "Query" was defined more than once.
Мои попытки Я сослался на документацию apollo для источников данных и для объединения нескольких схем и преобразователей с использованием gql из graphql-tools.Но я не получил никакой реализации gql, где они также использовали источники данных.
Любая помощь приветствуется.
Примечание: я довольно новичок в Graphql