问题标签 [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 投票
1 回答
2036 浏览

node.js - 如何使用 GraphQL 从数据库中获取有限的记录(分页)

我最近开始使用 GraphQL。我能够从数据库中获取所有记录,但我只想获取有限的记录(例如一次 10 条)。请任何人指导我实现这一目标。谢谢

0 投票
1 回答
1256 浏览

reactjs - GraphQL 中的双向获取

我有以下 GraphQL 架构:

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

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

0 投票
1 回答
116 浏览

mongodb - 如何在 GraphQL 中打印自定义消息

嗨,我正在使用 GraphQl 和 es6 的组合。从 graphql 中删除特定记录时,我正在获取已删除记录的详细信息(值),我想打印一些自定义消息,例如“记录已删除”。请相应地帮助我。

这是我的graphQL代码:

0 投票
0 回答
406 浏览

reactjs - 了解胖查询和树结构

我在理解 Relay 中胖查询的概念时仍然有些麻烦,尤其是关于确定要重新获取哪些数据的交集逻辑部分。

到目前为止,我已经构建了一个简单的分层数据结构,它带有一个UserType作为根查询(名为viewer),它有许多projects(类型ProjectConnectionType)与之关联。每个项目都有另一个projects字段(也是 type ProjectConnectionType)来模拟任意嵌套的子项目层次结构。

我还有两个更高阶的 React 组件ProjectList,并ProjectListItem通过有条件地扩展片段(通过expanded在我的列表项组件中使用 Relay 变量)来呈现这个结构。

到目前为止,这工作正常,我对此非常满意。棘手的部分现在是AddProject突变。我创建了一个突变,它采用名称和parentProjectId作为输入(对于根项目可能为空),并在服务器端的正确位置创建一个新节点。之后,它应该返回新的projectEdgesRANGE_ADD之后使用),以及parentProjectorviewer以便我也可以在subprojectCount那里更新。

对于查看器(唯一的全局根查询点),一切正常。Relay 正确计算交集并从服务器请求新数据。但是当我尝试添加一个子项目时,我一直得到一个完全空的响应,没有任何输出字段(除了突变 id)。我的猜测是,Relay 似乎因为不知道如何相应地映射该parentProject字段而弄错了交叉点。我已经尝试为其添加FIELDS_CHANGE配置以及parentProject: node(id: "$parentProjectId")在我的胖查询中进行查询(这也不起作用)。

我错过了什么?我现在已经阅读了几次文档,但我仍然不理解突变的概念,我觉得已经很愚蠢了。

0 投票
1 回答
128 浏览

relay - 继电器入门套件的简单存储

我正在使用 Facebook 的 Relay 入门工具包学习 Relay 和 GraphQL。我想为我的数据创建一个简单的存储,基本上只是为了将我的 GraphQL 突变保存在某个地方。稍后我将处理适当的 ORM 和数据库。

我可以将数据作为 JSON 转储到平面文件中吗?我该怎么做?(不需要并发、安全等,我还在学习这一切。)

提前致谢!

0 投票
2 回答
3503 浏览

reactjs - Relay + React 上的测试策略

这些天我正在试验 React + Relay + Graphql。不幸的是,我找不到任何简单方便的方法来测试由 Relay Container 包装的 React 组件。

基本上,我想通过 TDD 实现这些目标,

  1. 渲染一个容器并测试它的内容,
  2. 更改变量并测试其对内容的更改。

与 React + Flux 相比,React + Relay 更像是黑盒,或者说,声明式的。

我可以看到人们模拟 Relay.createContainer 以绕过 Relay 并仅测试 React 组件。它使继电器部分未被覆盖,并且无法通过测试来驱动该部分。 https://github.com/facebook/relay/issues/161

另外,我通读了 Relay 的测试用例,渲染一个模拟容器真的很乏味。 https://github.com/facebook/relay/blob/master/src/tools/mocks/RelayTestUtils.js _ _

如果您能分享您的解决方案,我将不胜感激。

谢谢!

0 投票
1 回答
264 浏览

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

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

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

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

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

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

0 投票
1 回答
340 浏览

node.js - 如何使用 GraphQL 以数组格式将多封电子邮件发送到数据库

我最近开始使用 GraphQL。我想一次以数组格式发送多封电子邮件,并在邮递员中发送请求(突变查询),如下所示。此查询用于一次插入一条记录,但我想插入多个电子邮件和用户名一次。请给我任何建议如何查询。谢谢你。

我的 GraphQL 架构是:

updateContact 代码如:

0 投票
2 回答
288 浏览

reactjs - Relay.js 中的动态子项/地图类型

我有一个Item类型。我希望将其标题翻译成多种语言。我在想像这样的结构:

管理界面需要加载所有标题进行编辑,并可选择添加新标题。换句话说,我正在寻找一个'dict'。

我现在能想出的解决这个问题的唯一方法是使用 aGraphQLString并将语言字符串编码为 JSON 对象。

还有一个,还是应该有?

0 投票
1 回答
1385 浏览

reactjs - 仅在客户端中继 JS

我用 laravel ( https://github.com/Folkloreatelier/laravel-graphql ) 开发了一个 graphql 服务器。现在我想使用 Relay 创建一个 React 应用程序。当我创建我的第一个组件时,我收到错误:未捕获错误:不变违规:RelayQL:运行时意外调用。要么未设置 Babel 转换,要么未能识别此调用站点。确保它被逐字用作Relay.QL.

我仍然用谷歌搜索了这个错误,我意识到我需要安装 Babel Relay 插件。但是要包含这个插件,我必须指定一个模式。但是我仍然在服务器端指定了这个模式,为什么我在客户端也需要这个?当仍然实现服务器(外部服务器,例如没有NodeJS服务器)时,是否有任何示例如何实现这一点。

感谢您的意见。