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

express - 在 graphqlHTTP.Middleware 之后挂载中间件

我有一个关于express-graphql. 我正在尝试在 GraphQL 解析器之后运行中间件。

这是我的前两次尝试:

两者都不工作。我猜express-graphql不是在next()某个地方打电话。

消息来源似乎证实了这一点:

next不是参数。

我尝试了这种解决方法:

它有点工作。但在实际使用中,我注意到,由突变改变的数据在回调中尚不可用(即已经更新)。如果我将代码包装在 asetTimeout中,则数据将被更新。

底线:如何让中间件(或任何代码)在解析器之后运行?

0 投票
2 回答
12051 浏览

python - 从我的 python 代码中进行 graphQL 突变,得到错误

我正在尝试从 python 对我的 Shopify 商店进行突变。我是 graphQL 的新手,我已经能够使用 graphiQL 进行突变,但我不确定如何直接从我的代码中进行。

这是我的 make 查询文件,它已成功用于简单查询

现在,在 graphiQL 中起作用的突变示例如下:

"mutation {customerCreate(input: {email: 'wamblamkazam@send22u.info', password: 'password'}) {userErrors { field message}customer{id}}}"

但是当我将它传递给我的 make_query 函数时,它会给出这个错误

我该如何解决?我正在制作的突变之一也使用变量,但我无法直接从我的代码中找到如何执行此操作的示例

0 投票
2 回答
5245 浏览

graphql - graphql 基于角色的授权

我是 GraphQL 新手,打算使用 GraphQL 构建解决方案。

一切看起来都很酷,但只关心如何在 GraphQL 服务器中实现基于角色的授权(我正在考虑使用 GraphQL.js/apollo 服务器)

我将有一个包含所有用户的用户表。在 users 表中有一个角色字段,其中包含特定用户的角色。将根据用户的角色授予查询和突变。

我怎样才能实现这个结构?

谢谢!

0 投票
1 回答
55 浏览

graphql - 我如何知道所有客户订阅了我的 graphql 数据?

我需要知道所有客户在我的订阅服务器中观看什么类型的数据。我怎样才能做到这一点?

0 投票
1 回答
328 浏览

graphql - 仅从 GraphQLList 对象返回非空值

我的 sampleJSON -

Schema.js -

我用来查询上述 JSON 中的数据的 GraphQL 查询 -

我想知道为什么查询返回“title”,即使它在第二个对象中为空,并且在第一个对象中也有描述。有没有办法只返回“标题”或“描述”,如果它不为空?

查询的当前结果 -

要求的结果 -

感谢您对此的任何帮助!,谢谢。

0 投票
1 回答
1225 浏览

reactjs - 使用 express-graphql 和 react-apollo 处理错误

我试图在登录表单上显示一个简单的“电子邮件和密码不匹配”错误,但我遇到了麻烦,不确定我出错的地方是在服务器上还是在我的 React 应用程序中。我想我会在这里发帖,因为我不确定哪个 github repo 是合适的。这是服务器上的解析器:

然后,在我的登录组件中调用突变:

当我提供正确的信息时,一切都按预期工作。如果我不这样做,则捕获的错误不包含 GraphQLErrors。

我正在使用具有默认设置的 apollo-link-error 中间件:https ://www.apollographql.com/docs/link/links/error.html

我的控制台如下所示:

在此处输入图像描述

正在返回预期的身份验证错误,并从中间件记录下来。但是,在我的 Login 组件中,error.graphQLErrors 数组是空的。

我可能在哪里出错了?

  • 返回 500 Internal Server Error 似乎不正确——它的行为完全符合我的意愿。我是否在服务器上错误地实现了这一点?

  • graphQLErrors 如何在日志中间件和 .catch(error) 之间“丢失”?

0 投票
1 回答
547 浏览

reactjs - 突变返回 400 错误,但在 GraphiQL 中有效

我一直在学习教程并尝试使用 react 和 express 学习 graphql,但我遇到了麻烦。当我将其插入 graphiql 时,我的突变有效,但当我从客户端调用它时无效。

客户端代码:

架构代码:

解析器

错误

我的“数据库”是一个包含 const书籍的 .js 文件

我可以发送查询并获得结果,但突变似乎更难。

任何帮助将不胜感激,谢谢!

0 投票
1 回答
2062 浏览

node.js - 在 express GraphQL 中解析嵌套数据

我目前正在尝试解决一个引用成分的简单食谱列表。

数据布局如下所示:

据我了解,我的解析器应该如下所示:第一个解析配方,第二个解析配方中的成分字段。它可以(根据我的理解)使用 recipe 提供的参数。在我的食谱对象中,成分由 id (int) 引用,所以这应该是参数(至少我是这么认为的)。

这些解析器像这样传递给应用程序:

但是,我的解析器似乎没有被调用。我希望在我的查询中查询时即时解决这些成分。

端点工作,但只要我查询成分,"message": "Cannot return null for non-nullable field Ingredient.name.",就会返回一条错误消息。

当试图在我的解析器中记录传入的参数时,我可以看到它永远不会被执行。不幸的是,当我像我一样使用 express-graphql 时,我找不到如何使用它的示例。

如何在 express-graphQL 中为嵌套类型编写单独的解析器?

0 投票
1 回答
1084 浏览

java - apollo-android 在请求中不提供变量

我曾经使用apollo-server-express以下架构设置 GraphQL 服务器:

基本上,该User类型代表我的 MySQL 数据库中的一个表。服务器完全可以运行。这是我的查询

请注意,我已经缩短了User类型和UserDetails片段。

查询位于我的 Android Studio 项目中,apollo-android插件正确生成 Java 对象。我正在尝试获取 ID 为 1 的用户。我的 Java 代码如下所示:

该类提供对实例的访问,RestClient资源字符串指向我的本地 GraphQL 服务器的 IP 地址和端口:. 当我尝试执行我的 Android 应用程序时,我收到以下错误消息:SingletonApolloClienturlGraphQLEndpointhttp://10.0.2.2:3000/graphql

在服务器端,我收到以下控制台日志:

当我尝试完全相同的查询时,客户端应该使用apollo-androidGraphiQL 一切都按我的预期工作,并且我收到 ID 为 1 的用户。这对我来说似乎是apollo-androidlib 的内部错误,但因为我的 Java代码和我的 GraphQL 查询看起来与使用 Apollo消费代码apollo-android生成代码的示例没有太大区别我真的不知道我的错误在哪里。

在此先感谢,我感谢每一个帮助!

0 投票
1 回答
55 浏览

javascript - graphql 为什么我需要在解析器参数中声明一个额外的参数

我一直在到处阅读有关 graphql 的信息,并且在解析器函数中陷入了误解:

这是我糟糕的解析器,我得到的是一个未定义的参数:

看了几篇文章后,我修复了它:( 了解析构函数部分,但不知道为什么下划线 _ 参数)

在这里你可以看到这两个非常好的和解释性的帖子,他们没有解释,为什么它们是解析器函数中的两个参数这是个大问题

  • graphql 服务器端 getAuthor(_,{id})的实现,函数的签名有两个参数,但只使用第二个参数,它不能只使用id参数

  • 另一个关于 GraphQL 的解释(GraphQL 服务器如何将查询转换为响应?作者(root,args)函数的签名有两个参数,但只使用第二个参数,该函数也不能只使用args参数(root 从不为我工作