问题标签 [graphql-js]

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 回答
2226 浏览

javascript - GraphQL 流式传输类型?

我现在正在使用GraphQL-JS,将它连接到 MariaDB 后端。

我已经弄清楚如何返回整个结果集:

这很酷,但是我正在使用的库也可以让我逐行流式传输结果。

GraphQL 有什么可以促进这一点吗?

据我所知,GraphQLList期待一个完整的数组,我只能解析我的结果集一次,而不是使用发射器或其他东西。

0 投票
1 回答
1938 浏览

javascript - Relay / GraphQL 'resolve' 是如何工作的?

我正在尝试RelayGraphQL。当我在做架构时,我正在这样做:

所以,当我要求这样的文章时:

它会对数据库进行 3 次查询吗?我的意思是,每个字段都有一个解析方法(getTitle,getAuthor等),它向数据库发出请求。我做错了吗?

这是getAuthor(我使用猫鼬)的一个例子:

0 投票
1 回答
1091 浏览

javascript - 您如何为 ORM 的分页定义中继连接?

我浏览了 Relay 的所有文档,似乎没有关于如何使用 ORM 建立 Relay 连接的简单说明。如果您将数据存储在内存中,所有示例似乎都使用这种connectionFromArray方法很好,但是当您将数据存储在数据库中时,您将如何提供连接分页工作所需的信息?

0 投票
1 回答
1831 浏览

graphql - 在 relay/graphql 中获取特定列表项的附加信息

使用 Relay 和 GraphQL,假设我有一个返回查看器的模式和一个嵌入的关联文档列表。根查询(由片段组成)看起来像这样:

这将允许我显示用户及其所有关联组的列表。

现在假设我希望用户能够单击该列表项,并使其展开以显示与该特定列表项关联的评论。我应该如何重组我对中继路线的查询,以便我可以收到这些评论?如果我将评论边缘添加到我的组边缘,那么它不会获取所有组的评论吗?

或者我应该更改路线查询以查找特定组?

我特别关心的是,在relay. 即,我怎样才能有效地构造一个路由查询,它只会获取扩展列表项(或多个项目)的评论,同时仍然利用已经存在的缓存数据,并且在进行突变时会更新?上面的示例可能适用于特定的扩展组,但我不确定如何在不获取所有组项的这些字段的情况下同时扩展多个组。

0 投票
2 回答
7372 浏览

graphql - GraphQL 变异变量

我正在尝试使用带有 GraphiQL 接口的 GraphQL 进行简单的突变。我的突变看起来像这样:

带变量:

但这给了我错误:Variable $name of type "String" used in position expecting type "String!"

如果我将我的突变更改为mutation M($name: String = "default")它按预期工作。这看起来与类型系统有关,但我似乎无法弄清楚问题所在。

0 投票
1 回答
226 浏览

reactjs - 带有整数查询参数的 RelayJS 不变违规

我对 Relay 比较陌生,所以这可能是我犯的一个简单的错误,但我已经寻找了一段时间,但我没有找到任何关于我遇到的问题的信息。

这是我从我的应用程序中得到的错误:

未捕获的错误:不变违规:GraphQLFragmentPointer:story查询参数的值Route应该是一个字符串,但它被设置为10。检查该值是否为字符串。

问题是我实际上希望它是10并且不希望它是字符串。我是否配置错误?

这是我的 GraphQL 架构:

这是我定义的中继路线:

这就是我实例化它的方式:

0 投票
1 回答
1256 浏览

reactjs - GraphQL 中的双向获取

我有以下 GraphQL 架构:

基本上,每个用户都可以有一个任务列表。当我需要获取所有任务的列表以获得这样的响应时,就会出现问题:

我应该如何编辑我的架构以允许这样的获取?

0 投票
1 回答
264 浏览

graphql - 分页连接加上突变增加的边缘

RANGE_ADD在进行突变时,我无法弄清楚如何完成看似非常标准的模式。

在页面加载时说我拉入并呈现chatmessagesfirst: 10分页的连接。我现在做AddMessageMutation一个前置到同一个连接的操作。由于连接由连接first: 10的最后一项进行分页,因此现在已经为我的新边缘腾出空间,因此从渲染中删除。我当然可以在突变上添加+1 firstonSuccess但这通常会留下一个奇怪的闪烁效果,即在最后移除和重新插入边缘。

如果我想对连接进行乐观更新,这个问题似乎变得更加困难,因为没有onOptimistic回调。

由于这似乎是一种非常常见的模式,我想我会问我是否以错误的方式接近它。

问题中引用: https ://github.com/facebook/relay/issues/384

0 投票
2 回答
5658 浏览

node.js - graphQL - 类型必须是输出类型

我正在尝试使用graffitiexpress 和 mongoose 设置 graphQL 路由。

但是我收到以下错误:

在猫鼬模式中,类型是 : type : Schema.Types.ObjectId。是否应该更改为其他内容?

我应该注意到版本是:

0 投票
1 回答
894 浏览

graphql - 使用 graphql-js 的相关 Http 响应代码

好的,事情就是这样,我正在尝试弄清楚如何使用 graphql-js 处理错误。(在没有继电器的情况下)

不够具体!?好的,因为 graphql-js 正在捕获解析函数中抛出的所有错误,所以我对如何正确处理错误和 http 响应有点困惑。

所以我没有什么想法,想知道你的想法!

  1. 即使包含错误,也始终使用 graphql 响应返回 200 OK。(不喜欢那个)

  2. 在 result.errors[0] 上切换大小写并针对错误返回 http 响应,如果没有错误则返回 result.data。(这最终可能是一个非常长的开关盒)

    • 处理 resolve 函数和 throw 和 object 中的错误处理(例如{ httpCode: 404, msg: 'No X found with the requested id' }

    • 在 express app.post 函数(或任何 Web 框架)中,具有以下内容:

      /li>

    由于错误对象的编组方式,这目前不起作用......或者至少我还没有找到如何将它从 graphql 中取出。我正在考虑可能会研究 graphql-js 源,但我想我最好先问你们,因为我可能会遗漏一些明显的东西。

显然,欢迎有更好的主意!

干杯:D