NodeJS 访问NestJs GraphQL游戏场

lsmd5eda  于 2022-12-18  发布在  Node.js
关注(0)|答案(4)|浏览(153)

我似乎无法使用NestJS访问GraphQL Playground。我正在浏览文档,并已按照此https://docs.nestjs.com/graphql/quick-start到Resolvers部分生成schema.gql,但尝试访问localhost:3000/graphql无法连接。
一开始我以为代码设置不正确,但我花了一些时间深入研究Nest的示例,发现当尝试访问/graphql端点时,这些示例也不起作用。如果我设置get端点以使用REST方法返回JSON主体,则这些示例起作用。

import { Module } from '@nestjs/common';
import { GraphQLModule } from '@nestjs/graphql';
import { RecipesModule } from './recipes/recipes.module';

@Module({
  imports: [
    RecipesModule,
    GraphQLModule.forRoot({
      installSubscriptionHandlers: true,
      autoSchemaFile: 'schema.gql',
    }),
  ],
})
export class AppModule {}

这是直接来自NestJS示例的。我的理解是GraphQLModule应该设置到/graphql端点的连接。按照文档,graphql, apollo-server-express, and graphql-tools都安装好了。
知道为什么graphql路由没有连接吗?
[编辑]:到目前为止我已经尝试过的事情:

  • 使用GraphQLModule.forRoot显式设置playground: true
  • 已验证NODE_ENV不是“生产”
  • 使用REST创建冲突解决程序时,已确认服务器工作正常
  • curl'd localhost:3000/graphql并收到graphql验证错误,因此请确认连接是否正确
dba5bblo

dba5bblo1#

有时候helmet会导致同样的问题。如果你有 Helm 作为中间件加载,它可能也会导致这个问题。

bwitn5fc

bwitn5fc2#

我也遇到过类似的问题,这就是我所做的。希望对大家有所帮助。感谢大家的支持。
步骤1://应用程序模块.ts

imports: [
    UsersModule,
    GraphQLModule.forRoot({
      // autoSchemaFile: true,    did not work!
      autoSchemaFile: join(process.cwd(), 'src/schema.gql'),
      // schema.gql will automatically be created
      debug: true,
      playground: true,
    }),
  ],
  providers: [AppResolver],   // all resolvers & service should be in providers

第二步:
请确保你有一个至少查询bcz突变是不够的,如果你不GraphQLPlayground将不会启动.阅读更多here

xnifntxz

xnifntxz3#

似乎是Windows 10上运行的WSL2的问题。Github上的这个线程对这个问题有一些见解。
禁用快速启动以允许访问localhost。
https://github.com/microsoft/WSL/issues/5298

bxgwgixi

bxgwgixi4#

删除dist文件夹并重新启动应用程序对我很有效。

相关问题