Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

374
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda