GraphQLError:必须提供查询根类型

Far*_*ani 9 postgresql graphql typeorm nestjs

我的后端 API 使用 NestJS、TypeORM 和 GraphQL。我收到以下错误:

GraphQLError [Object]: Query root type must be provided.
      at SchemaValidationContext.reportError (/home/wise-introvert/Container/Projects/the-notebook/app/server/node_modules/graphql/type/validate.js:88:19)
      at validateRootTypes (/home/wise-introvert/Container/Projects/the-notebook/app/server/node_modules/graphql/type/validate.js:107:13)
      at validateSchema (/home/wise-introvert/Container/Projects/the-notebook/app/server/node_modules/graphql/type/validate.js:52:3)
      at graphqlImpl (/home/wise-introvert/Container/Projects/the-notebook/app/server/node_modules/graphql/graphql.js:79:62)
      at /home/wise-introvert/Container/Projects/the-notebook/app/server/node_modules/graphql/graphql.js:28:59
      at new Promise (<anonymous>)
      at Object.graphql (/home/wise-introvert/Container/Projects/the-notebook/app/server/node_modules/graphql/graphql.js:26:10)
      at GraphQLSchemaFactory.<anonymous> (/home/wise-introvert/Container/Projects/the-notebook/app/server/node_modules/@nestjs/graphql/dist/schema-builder/graphql-schema.factory.js:49:52)
      at Generator.next (<anonymous>)
      at /home/wise-introvert/Container/Projects/the-notebook/app/server/node_modules/tslib/tslib.js:114:75
Run Code Online (Sandbox Code Playgroud)

这是我的文件结构和代码的样子: 在此处输入图片说明

有人可以帮帮我吗。我的仓库:https : //github.com/wise-introvert/nestjs-graphql-api.git

Jay*_*iel 18

所有运行 GraphQL 的服务器必须至少有一个@Query()才能被视为有效的 GraphQL 服务器。没有它,apollo-server 包将抛出异常,服务器将无法启动。这可以很简单

@Resolver()
export class FooResolver {

  @Query(() => String)
  sayHello(): string {
    return 'Hello World!';
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 我在解析器的“@Query”装饰器下添加了一个虚拟函数,但它仍然抛出相同的错误。 (2认同)

Jon*_*ock 16

还要确保在模块提供程序中添加了解析器

@Module({
  imports: [
    GraphQLModule.forRoot({
      installSubscriptionHandlers: true,
      autoSchemaFile: true,
    }),
  ],
  controllers: [],
  providers: [FooResolver], //< This
})
export class FooModule {}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!这对我来说是个问题。接受的答案并没有为我解决这个错误。 (2认同)
  • 我缺少的是选项对象中的“autoSchemaFile: true”。 (2认同)