当我运行 Nest.js 时,出现“缺少“驱动程序”选项”错误

yut*_*uro 5 graphql nestjs prisma

我正在使用 Nest.js、prisma 和 graphql。
当我运行 npm run start:dev 命令时,出现错误。
如果有人知道如何解决这个问题,请告诉我。

错误[GraphQLModule]缺少“驱动程序”选项。在最新版本的“@nestjs/graphql”包(v10)中,引入了一个名为“driver”的新必需配置属性。查看官方文档以了解有关如何迁移的更多详细信息(https://docs.nestjs.com/graphql/migration-guide)。例子:

GraphQLModule.forRoot({ 驱动程序: ApolloDriver, })

app.module.ts
import { Module } from '@nestjs/common';
import { GraphQLModule } from '@nestjs/graphql';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { ApolloServerPluginLandingPageLocalDefault } from 'apollo-server-core';
import { DonationsModule } from './donations/donations.module';

@Module({
  imports: [
    GraphQLModule.forRoot({
      playground: false,
      plugins: [ApolloServerPluginLandingPageLocalDefault()],
      typePaths: ['./**/*.graphql'],
    }),
    DonationsModule,
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

Run Code Online (Sandbox Code Playgroud)
generate-typings.ts
import { GraphQLDefinitionsFactory } from '@nestjs/graphql';
import { join } from 'path';

const definitionsFactory = new GraphQLDefinitionsFactory();
definitionsFactory.generate({
  typePaths: ['./src/**/*.graphql'],
  path: join(process.cwd(), 'src/graphql.ts'),
  outputAs: 'class',
  watch: true,
});

Run Code Online (Sandbox Code Playgroud)

使固定

@Module({
  imports: [
    GraphQLModule.forRoot<ApolloDriverConfig>({
      driver: ApolloDriver,
      autoSchemaFile: true,
      plugins: [ApolloServerPluginLandingPageLocalDefault()],
      typePaths: ['./**/*.graphql'],
    }),
    DonationsModule,
  ],
  controllers: [AppController],
  providers: [AppService],
})
Run Code Online (Sandbox Code Playgroud)

Sor*_*ari 11

查看 Nestjs/graphql 文档页面和您提到的其他链接。你必须GraphQLModule像这样配置你的代码,我在你的代码中没有看到。

@Module({
  imports: [
    GraphQLModule.forRoot<ApolloDriverConfig>({
      driver: ApolloDriver,
    }),
  ],
})
Run Code Online (Sandbox Code Playgroud)