【发布时间】:2021-04-03 01:53:54
【问题描述】:
我似乎无法使用 NestJS 访问 GraphQL Playground。我正在浏览文档,并按照https://docs.nestjs.com/graphql/quick-start 一直到解析器部分来生成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 验证错误,因此请确认连接正确
【问题讨论】:
-
检查您的
process.env.NODE_ENV是什么。如果是PRODUCTION,那么我认为apollo-server会禁用操场。如果没有,请尝试显式添加playground: true -
@JayMcDoniel 我应该在帖子中指定我已经尝试过的内容,抱歉。我都试过了,不幸的是,无法连接到端点。我只是卷曲端点以查看它是否连接到 graphql,并且似乎是因为它返回 GraphQL 验证错误。
-
那你们能提供复制品吗?从您分享的内容中看不出为什么会发生这种情况
-
所以,我在他们的 github repo (github.com/nestjs/nest/tree/master/sample/23-graphql-code-first) 中尝试了 Nest 的示例。它尽可能基本,并且与文档的示例基本相同。没有修改,只是无法连接到 gql 游乐场。同样的结果卷曲,能够看到gql验证错误,所以它在服务器上连接。
-
对于该示例,curl 失败,但浏览器对同一位置的请求成功。可能正在查看用户代理。将交互式游乐场发送到命令行没有多大意义