Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

372
Visualizações
NestJS: se espera que undefined sea un esquema GraphQL

Estoy tratando de configurar una API GraphQL muy pequeña usando NestJS 8. Instalé todas las redenciones requeridas de la documentación, pero cuando inicio el servidor, aparece este error:

 [Nest] 22727 - 10/30/2021, 10:11:10 AM LOG [NestFactory] Starting Nest application... [Nest] 22727 - 10/30/2021, 10:11:10 AM LOG [InstanceLoader] AppModule dependencies initialized +43ms [Nest] 22727 - 10/30/2021, 10:11:10 AM LOG [InstanceLoader] TypeOrmModule dependencies initialized +0ms [Nest] 22727 - 10/30/2021, 10:11:10 AM LOG [InstanceLoader] ConfigHostModule dependencies initialized +7ms [Nest] 22727 - 10/30/2021, 10:11:10 AM LOG [InstanceLoader] ConfigModule dependencies initialized +1ms [Nest] 22727 - 10/30/2021, 10:11:10 AM LOG [InstanceLoader] ConfigModule dependencies initialized +1ms [Nest] 22727 - 10/30/2021, 10:11:11 AM LOG [InstanceLoader] GraphQLSchemaBuilderModule dependencies initialized +21ms [Nest] 22727 - 10/30/2021, 10:11:11 AM LOG [InstanceLoader] GraphQLModule dependencies initialized +1ms [Nest] 22727 - 10/30/2021, 10:11:11 AM LOG [InstanceLoader] TypeOrmCoreModule dependencies initialized +93ms [Nest] 22727 - 10/30/2021, 10:11:11 AM LOG [InstanceLoader] TypeOrmModule dependencies initialized +0ms [Nest] 22727 - 10/30/2021, 10:11:11 AM LOG [InstanceLoader] PostModule dependencies initialized +0ms /workspace/node_modules/graphql/type/schema.js:35 throw new Error( ^ Error: Expected undefined to be a GraphQL schema. at assertSchema (/workspace/node_modules/graphql/type/schema.js:35:11) at validateSchema (/workspace/node_modules/graphql/type/validate.js:34:28) at graphqlImpl (/workspace/node_modules/graphql/graphql.js:52:64) at /workspace/node_modules/graphql/graphql.js:21:43 at new Promise (<anonymous>) at graphql (/workspace/node_modules/graphql/graphql.js:21:10) at GraphQLSchemaFactory.create (/workspace/node_modules/@nestjs/graphql/dist/schema-builder/graphql-schema.factory.js:48:60) at GraphQLSchemaBuilder.buildSchema (/workspace/node_modules/@nestjs/graphql/dist/graphql-schema.builder.js:62:52) at GraphQLSchemaBuilder.build (/workspace/node_modules/@nestjs/graphql/dist/graphql-schema.builder.js:24:31) at GraphQLFactory.mergeOptions (/workspace/node_modules/@nestjs/graphql/dist/graphql.factory.js:33:69)

No entiendo este error, ya que solo estoy siguiendo la documentación ...

 // app.module.ts import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { GraphQLModule } from '@nestjs/graphql'; import { TypeOrmModule } from '@nestjs/typeorm'; import { GraphqlOptions } from './config/graphql.config'; import { typeOrmConfigAsync } from './config/typeorm.config'; import { PostModule } from './post/post.module'; @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true }), TypeOrmModule.forRootAsync(typeOrmConfigAsync), GraphQLModule.forRootAsync({ useClass: GraphqlOptions, }), PostModule, ], }) export class AppModule {}
 // graphql.config.ts import { Injectable } from '@nestjs/common'; import { GqlModuleOptions, GqlOptionsFactory } from '@nestjs/graphql'; @Injectable() export class GraphqlOptions implements GqlOptionsFactory { createGqlOptions(): Promise<GqlModuleOptions> | GqlModuleOptions { return { autoSchemaFile: 'schema.gql', sortSchema: true, debug: true, installSubscriptionHandlers: true, context: ({ req }) => ({ req }), }; } }
 // post.module.ts import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { Post } from './post.entity'; import { PostResolver } from './post.resolver'; import { PostService } from './post.service'; @Module({ imports: [TypeOrmModule.forFeature([Post])], providers: [PostService, PostResolver], exports: [PostService], }) export class PostModule {}
 // post.entity.ts import { Field, ID, ObjectType } from '@nestjs/graphql'; import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; @Entity('post') @ObjectType() export class Post { @Field(() => ID) @PrimaryGeneratedColumn('uuid') id: string; @Field() @Column({ nullable: false }) title: string; @Field() @Column({ nullable: false, unique: true }) slug: string; @Field() @Column({ nullable: false }) content: string; @Field() @Column({ type: 'timestamp' }) createdAt: Date; @Field() @Column({ type: 'timestamp', nullable: true }) updatedAt: Date; }

¿Alguien puede resaltar lo que está mal con mi proyecto?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Estaba recibiendo los mismos errores. Después de depurar paso a paso, la respuesta es que @nestjs/graphql@9.1.1 no es compatible con GraphQL@16 .

Específicamente, GraphQL@16 cambió la función gqaphql , como se llama desde dentro de graphqlImpl , para que solo admita argumentos sin un esquema:

 function graphql(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) { var _arguments = arguments; /* eslint-enable no-redeclare */ // Always return a Promise for a consistent API. return new Promise(function (resolve) { return resolve( // Extract arguments from object args if provided. _arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({ schema: argsOrSchema, source: source, rootValue: rootValue, contextValue: contextValue, variableValues: variableValues, operationName: operationName, fieldResolver: fieldResolver, typeResolver: typeResolver })); }); }

Para resolverlo, deberá cambiar su versión de graphql a 15.x.

over 4 years ago · Santiago Trujillo Relatório

0

Actualización de diciembre de 2021:

Necesita degradar graphql a 15.x :

 npm install graphql@15.8.0

Si no te importa la versión específica :

 npm install graphql@15

Si usas "hilo" :

 yarn add graphql@15.8.0

Si no te importa la versión específica :

 yarn add graphql@15
over 4 years ago · Santiago Trujillo Relatório

0

Como supe por la documentación oficial de nestjs. Es un problema de versión.

Para evitar este problema simplemente instale

 npm i @nestjs/graphql graphql@^15 apollo-server-express

para una mejor comprensión, consulte la documentación de nestjs

Graphql con nestjs

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda