Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

370
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!