问题标签 [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.
node.js - 如何使用 GraphQL 从数据库中获取有限的记录(分页)
我最近开始使用 GraphQL。我能够从数据库中获取所有记录,但我只想获取有限的记录(例如一次 10 条)。请任何人指导我实现这一目标。谢谢
reactjs - GraphQL 中的双向获取
我有以下 GraphQL 架构:
基本上,每个用户都可以有一个任务列表。当我需要获取所有任务的列表以获得这样的响应时,就会出现问题:
我应该如何编辑我的架构以允许这样的获取?
mongodb - 如何在 GraphQL 中打印自定义消息
嗨,我正在使用 GraphQl 和 es6 的组合。从 graphql 中删除特定记录时,我正在获取已删除记录的详细信息(值),我想打印一些自定义消息,例如“记录已删除”。请相应地帮助我。
这是我的graphQL代码:
reactjs - 了解胖查询和树结构
我在理解 Relay 中胖查询的概念时仍然有些麻烦,尤其是关于确定要重新获取哪些数据的交集逻辑部分。
到目前为止,我已经构建了一个简单的分层数据结构,它带有一个UserType
作为根查询(名为viewer
),它有许多projects
(类型ProjectConnectionType
)与之关联。每个项目都有另一个projects
字段(也是 type ProjectConnectionType
)来模拟任意嵌套的子项目层次结构。
我还有两个更高阶的 React 组件ProjectList
,并ProjectListItem
通过有条件地扩展片段(通过expanded
在我的列表项组件中使用 Relay 变量)来呈现这个结构。
到目前为止,这工作正常,我对此非常满意。棘手的部分现在是AddProject
突变。我创建了一个突变,它采用名称和parentProjectId
作为输入(对于根项目可能为空),并在服务器端的正确位置创建一个新节点。之后,它应该返回新的projectEdges
(RANGE_ADD
之后使用),以及parentProject
orviewer
以便我也可以在subprojectCount
那里更新。
对于查看器(唯一的全局根查询点),一切正常。Relay 正确计算交集并从服务器请求新数据。但是当我尝试添加一个子项目时,我一直得到一个完全空的响应,没有任何输出字段(除了突变 id)。我的猜测是,Relay 似乎因为不知道如何相应地映射该parentProject
字段而弄错了交叉点。我已经尝试为其添加FIELDS_CHANGE
配置以及parentProject: node(id: "$parentProjectId")
在我的胖查询中进行查询(这也不起作用)。
我错过了什么?我现在已经阅读了几次文档,但我仍然不理解突变的概念,我觉得已经很愚蠢了。
relay - 继电器入门套件的简单存储
我正在使用 Facebook 的 Relay 入门工具包学习 Relay 和 GraphQL。我想为我的数据创建一个简单的存储,基本上只是为了将我的 GraphQL 突变保存在某个地方。稍后我将处理适当的 ORM 和数据库。
我可以将数据作为 JSON 转储到平面文件中吗?我该怎么做?(不需要并发、安全等,我还在学习这一切。)
提前致谢!
reactjs - Relay + React 上的测试策略
这些天我正在试验 React + Relay + Graphql。不幸的是,我找不到任何简单方便的方法来测试由 Relay Container 包装的 React 组件。
基本上,我想通过 TDD 实现这些目标,
- 渲染一个容器并测试它的内容,
- 更改变量并测试其对内容的更改。
与 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 _ _
如果您能分享您的解决方案,我将不胜感激。
谢谢!
graphql - 分页连接加上突变增加的边缘
RANGE_ADD
在进行突变时,我无法弄清楚如何完成看似非常标准的模式。
在页面加载时说我拉入并呈现chatmessages
与first: 10
分页的连接。我现在做AddMessageMutation
一个前置到同一个连接的操作。由于连接由连接first: 10
的最后一项进行分页,因此现在已经为我的新边缘腾出空间,因此从渲染中删除。我当然可以在突变上添加+1 first
,onSuccess
但这通常会留下一个奇怪的闪烁效果,即在最后移除和重新插入边缘。
如果我想对连接进行乐观更新,这个问题似乎变得更加困难,因为没有onOptimistic
回调。
由于这似乎是一种非常常见的模式,我想我会问我是否以错误的方式接近它。
node.js - 如何使用 GraphQL 以数组格式将多封电子邮件发送到数据库
我最近开始使用 GraphQL。我想一次以数组格式发送多封电子邮件,并在邮递员中发送请求(突变查询),如下所示。此查询用于一次插入一条记录,但我想插入多个电子邮件和用户名一次。请给我任何建议如何查询。谢谢你。
我的 GraphQL 架构是:
updateContact 代码如:
reactjs - Relay.js 中的动态子项/地图类型
我有一个Item
类型。我希望将其标题翻译成多种语言。我在想像这样的结构:
管理界面需要加载所有标题进行编辑,并可选择添加新标题。换句话说,我正在寻找一个'dict'。
我现在能想出的解决这个问题的唯一方法是使用 aGraphQLString
并将语言字符串编码为 JSON 对象。
还有一个,还是应该有?
reactjs - 仅在客户端中继 JS
我用 laravel ( https://github.com/Folkloreatelier/laravel-graphql ) 开发了一个 graphql 服务器。现在我想使用 Relay 创建一个 React 应用程序。当我创建我的第一个组件时,我收到错误:未捕获错误:不变违规:RelayQL:运行时意外调用。要么未设置 Babel 转换,要么未能识别此调用站点。确保它被逐字用作Relay.QL
.
我仍然用谷歌搜索了这个错误,我意识到我需要安装 Babel Relay 插件。但是要包含这个插件,我必须指定一个模式。但是我仍然在服务器端指定了这个模式,为什么我在客户端也需要这个?当仍然实现服务器(外部服务器,例如没有NodeJS服务器)时,是否有任何示例如何实现这一点。
感谢您的意见。