问题标签 [express-graphql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
19245 浏览

javascript - GraphQL:Query.type 字段类型必须是输出类型,但得到:未定义

我正在尝试我的第一个 GraphQL 方法。这是代码:

架构.js:

然后在我的server.js上:

我收到以下错误:

0 投票
1 回答
293 浏览

graphql - 是否有可能在 JavaScript 中获得 GraphQL 模式的人类可读、嵌套的 JSON 表示?

我试图在不编写自定义内容来解析introspectionQuery.

理想情况下,这将是一个 JSON 对象,它具有类型名称的键和它们的类型作为查询结果形状中的值。

我一直在玩,graphql/utilities但找不到做这件事的方法。

对此有什么想法吗?

像这样的东西:

输出模式,但它不能很好地作为我们数据的可视化表示。

0 投票
1 回答
1274 浏览

graphql - 使用 express-graphql 访问请求对象

根据

http://graphql.org/graphql-js/authentication-and-express-middleware/

要将中间件与 GraphQL 解析器一起使用,只需像使用普通 Express 应用程序一样使用中间件。然后,请求对象可用作任何解析器中的第二个参数。

但是,当我运行解析器时

第二个参数是我的查询参数。然而,第三个参数,除非我将context配置属性覆盖expressGraphql为确实是我的请求对象。

我的完整配置是

文档是错的,还是我做错了什么?

0 投票
1 回答
2412 浏览

graphql - 突变中的 GraphQL 描述性成功消息

目前在 GraphQL JS 实现中,没有从突变返回描述性成功消息的标准方法,例如“用户创建成功”等。我的问题有 2 个部分:

  1. 我的想法是从 API 返回成功消息是有益的。这样,消息可以在不同的客户端(例如 Web 和移动端)之间保持一致。客户端不必为每个 API 调用实现他们的自定义消息。但我不确定最佳做法是什么。从突变调用返回描述性成功消息是否有任何缺点(除了增加响应大小)?

  2. 如果我决定这样做,graphql-js 中是否有标准方法可以做到这一点?

例如,是否有可能取回如下内容:

0 投票
1 回答
62 浏览

graphql - GraphqlJS 模式模式

graphql-tools我浏览了一些使用包的 GraphQLJS 教程,使用makeExecutableSchema命令,其他一些graphql使用新的GraphqlSchema(作为对象)的包,其他使用相同的 graphql 包但命令buildSchema

好吧,这三个似乎工作正常(好吧,他们只是以不同的方式构建模式。)。

问题:是否与“最佳实践”或导致“最佳性能”有某种关联?或者这绝对是我不应该担心的事情?

谢谢 :)

0 投票
2 回答
533 浏览

express - GraphQL。如何编写解析器

我刚开始接触 GraphQL。我正在使用 GraphQL.js 和 express。现在我正在尝试使用硬编码的 JSON 作为我的 javascript 文件中的数据来构建一个简单的示例。然后我想使用 express 中间件通过 curl 或 insomnia 来监听 HTTP 请求。在中间件中,我想使用 body-parser 提取查询。现在我遇到了解析器的问题。

请看一下我的代码。

这不起作用。当我使用 curl 发布查询时

curl -XPOST -H "Content-Type: application/graphql" -d "{product(name: \"Apfel\"){name price}}" http://localhost:4000/graphql

我得到响应 {"data". {“产品”:空}}。解析器不会被调用。我怎样才能正确地做到这一点?

0 投票
1 回答
22940 浏览

javascript - GraphQL:不可为空的数组/列表

我现在正在学习 GraphQL,在浏览教程时遇到了我无法理解的行为。假设我们在模式中定义了类型:

由于文档votes: [Vote!]!意味着该字段应该是不可为空的,并且数组本身也应该是不可为空的。但就在教程的作者展示了查询示例之后,对于某些链接,它为votes字段返回空数组。像这样:

所以我的问题是:“不可为空”是否意味着 graphQL 模式中的“空”或者它只是 graphQL 服务器的某种错误行为(我的意思是它返回空数组而没有警告应该由于模式而存在某些东西) .

谢谢!

0 投票
1 回答
1021 浏览

javascript - GraphQL 子字段查询的根方法

我是 GraphQL 新手,不知道如何在子字段上实现查询。

例如,假设我们有以下类型和查询:

然后,客户可以提出如下请求:

然后可以像这样实现根对象:

我的问题是您将如何在子字段上实现查询/过滤器。例如:

我将如何定义该根方法?我是否需要在postsroot 方法中手动过滤完整的帖子列表?

谢谢阅读!

0 投票
1 回答
2790 浏览

graphql - 如何对 express-graphql 突变进行单元测试?

我有一个带有查询和突变的 Express-GraphQL API,它在 GraphiQL 中工作,查询的单元测试有效,但是突变的单元测试返回 405 错误。我的 GraphQL 架构如下:

为了简化这个问题,这些方法的实现只是回显:

通过 Graphiql,一切正常:

产量

产生相同的结果。

在我的 API 单元测试中(使用来自 'supertest-as-promised' 的请求),查询返回 200

但是这个测试失败了

突变返回 405 错误消息非常不透明:

那么如何形成这个 json 有效负载以使 express-graphql 的这个单元测试通过?

0 投票
1 回答
691 浏览

node.js - NodeJs GraphQL 片段解析器

它是我的例子。我正在尝试片段。我不确定如何将片段连接到解析器。谁能帮我?https://launchpad.graphql.com/9qvqz3v5r

如果我查询如下

我会得到这个输出 JSON

如果我使用片段查询,我需要相同的输出。