在索引文件中,我尝试使用graphql-tools方法GraphQLSchema[]
和makeExicutableSchema
将我的所有typedef和解析器聚集到buildSchema
中,然后从graphql中放入GraphQLServer中。 -瑜伽。
import { importSchema } from "graphql-import";
import { GraphQLServer } from 'graphql-yoga';
import * as path from 'path';
import * as fs from 'fs';
import { createTypeOrmConnection } from "./utils/createTypeOrmConn";
import { mergeSchemas, makeExecutableSchema } from "graphql-tools";
import { GraphQLSchema } from 'graphql';
export const startServer = async () => {
const schemas: GraphQLSchema[] = [];
const folders = fs.readdirSync(path.join(__dirname, "./modules"));
folders.forEach(folder => {
const { resolvers } = require(`./modules/${folder}/resolvers`);
const typeDefs = importSchema(
path.join(__dirname, `./modules/${folder}/schema.graphql`)
);
schemas.push(makeExecutableSchema({
resolvers,
typeDefs
}));
});
const server = new GraphQLServer({
schema: mergeSchemas({ schemas })
});
await createTypeOrmConnection();
const app = await server.start({port: process.env.NODE_ENV === "test" ? 0 : 4000})
console.log('Server is running on http://localhost:4000')
return app;
};
这是在schema: mergeSchema({ schemas })
处的错误:
Type 'import("/Users/jackrisse/Projects/project-da-league/backend/node_modules/graphql/type/schema").GraphQLSchema' is not assignable to type 'import("/Users/jackrisse/Projects/project-da-league/backend/node_modules/apollo-utilities/node_modules/graphql/type/schema").GraphQLSchema'.
The types returned by 'getQueryType()' are incompatible between these types.
Type 'Maybe<GraphQLObjectType<any, any>>' is not assignable to type 'Maybe<GraphQLObjectType<any, any, { [key: string]: any; }>>'.
Type 'GraphQLObjectType<any, any>' is not assignable to type 'Maybe<GraphQLObjectType<any, any, { [key: string]: any; }>>'.
Types of property 'isTypeOf' are incompatible.
Type 'import("/Users/jackrisse/Projects/project-da-league/backend/node_modules/graphql/jsutils/Maybe").Maybe<import("/Users/jackrisse/Projects/project-da-league/backend/node_modules/graphql/type/definition").GraphQLIsTypeOfFn<any, any>>' is not assignable to type 'import("/Users/jackrisse/Projects/project-da-league/backend/node_modules/apollo-utilities/node_modules/graphql/tsutils/Maybe").default<import("/Users/jackrisse/Projects/project-da-league/backend/node_modules/apollo-utilities/node_modules/graphql/type/definition").GraphQLIsTypeOfFn<any, any>>'.
Type 'GraphQLIsTypeOfFn<any, any>' is not assignable to type 'Maybe<GraphQLIsTypeOfFn<any, any>>'.
Types of parameters 'info' and 'info' are incompatible.
Property 'cacheControl' is missing in type 'import("/Users/jackrisse/Projects/project-da-league/backend/node_modules/apollo-utilities/node_modules/graphql/type/definition").GraphQLResolveInfo' but required in type 'import("/Users/jackrisse/Projects/project-da-league/backend/node_modules/graphql/type/definition").GraphQLResolveInfo'.