问题标签 [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.
javascript - GraphQL:Query.type 字段类型必须是输出类型,但得到:未定义
我正在尝试我的第一个 GraphQL 方法。这是代码:
架构.js:
然后在我的server.js上:
我收到以下错误:
graphql - 是否有可能在 JavaScript 中获得 GraphQL 模式的人类可读、嵌套的 JSON 表示?
我试图在不编写自定义内容来解析introspectionQuery
.
理想情况下,这将是一个 JSON 对象,它具有类型名称的键和它们的类型作为查询结果形状中的值。
我一直在玩,graphql/utilities
但找不到做这件事的方法。
对此有什么想法吗?
像这样的东西:
输出模式,但它不能很好地作为我们数据的可视化表示。
graphql - 使用 express-graphql 访问请求对象
根据
http://graphql.org/graphql-js/authentication-and-express-middleware/
要将中间件与 GraphQL 解析器一起使用,只需像使用普通 Express 应用程序一样使用中间件。然后,请求对象可用作任何解析器中的第二个参数。
但是,当我运行解析器时
第二个参数是我的查询参数。然而,第三个参数,除非我将context
配置属性覆盖expressGraphql
为确实是我的请求对象。
我的完整配置是
文档是错的,还是我做错了什么?
graphql - 突变中的 GraphQL 描述性成功消息
目前在 GraphQL JS 实现中,没有从突变返回描述性成功消息的标准方法,例如“用户创建成功”等。我的问题有 2 个部分:
我的想法是从 API 返回成功消息是有益的。这样,消息可以在不同的客户端(例如 Web 和移动端)之间保持一致。客户端不必为每个 API 调用实现他们的自定义消息。但我不确定最佳做法是什么。从突变调用返回描述性成功消息是否有任何缺点(除了增加响应大小)?
如果我决定这样做,graphql-js 中是否有标准方法可以做到这一点?
例如,是否有可能取回如下内容:
graphql - GraphqlJS 模式模式
graphql-tools
我浏览了一些使用包的 GraphQLJS 教程,使用makeExecutableSchema
命令,其他一些graphql
使用新的GraphqlSchema
(作为对象)的包,其他使用相同的 graphql 包但命令buildSchema
。
好吧,这三个似乎工作正常(好吧,他们只是以不同的方式构建模式。)。
问题:是否与“最佳实践”或导致“最佳性能”有某种关联?或者这绝对是我不应该担心的事情?
谢谢 :)
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". {“产品”:空}}。解析器不会被调用。我怎样才能正确地做到这一点?
javascript - GraphQL:不可为空的数组/列表
我现在正在学习 GraphQL,在浏览教程时遇到了我无法理解的行为。假设我们在模式中定义了类型:
由于文档votes: [Vote!]!
意味着该字段应该是不可为空的,并且数组本身也应该是不可为空的。但就在教程的作者展示了查询示例之后,对于某些链接,它为votes
字段返回空数组。像这样:
所以我的问题是:“不可为空”是否意味着 graphQL 模式中的“空”或者它只是 graphQL 服务器的某种错误行为(我的意思是它返回空数组而没有警告应该由于模式而存在某些东西) .
谢谢!
javascript - GraphQL 子字段查询的根方法
我是 GraphQL 新手,不知道如何在子字段上实现查询。
例如,假设我们有以下类型和查询:
然后,客户可以提出如下请求:
然后可以像这样实现根对象:
我的问题是您将如何在子字段上实现查询/过滤器。例如:
我将如何定义该根方法?我是否需要在posts
root 方法中手动过滤完整的帖子列表?
谢谢阅读!
graphql - 如何对 express-graphql 突变进行单元测试?
我有一个带有查询和突变的 Express-GraphQL API,它在 GraphiQL 中工作,查询的单元测试有效,但是突变的单元测试返回 405 错误。我的 GraphQL 架构如下:
为了简化这个问题,这些方法的实现只是回显:
通过 Graphiql,一切正常:
产量
和
产生相同的结果。
在我的 API 单元测试中(使用来自 'supertest-as-promised' 的请求),查询返回 200
但是这个测试失败了:
突变返回 405 错误消息非常不透明:
那么如何形成这个 json 有效负载以使 express-graphql 的这个单元测试通过?
node.js - NodeJs GraphQL 片段解析器
它是我的例子。我正在尝试片段。我不确定如何将片段连接到解析器。谁能帮我?https://launchpad.graphql.com/9qvqz3v5r
如果我查询如下
我会得到这个输出 JSON
如果我使用片段查询,我需要相同的输出。