问题标签 [apollo-server]
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-tools 变异解析器的参数不是 v > 0.8.0 中的对象?
根据此处的文档,graphql-tools 库中解析器函数的第二个参数是传递给查询的对象
http://dev.apollodata.com/tools/graphql-tools/resolvers.html#Resolver-function-signature
但是,如果我使用 graphql >= 0.8.0 版本运行 graphql-tools,则作为第二个参数传递的“对象”缺少一些对象属性。例如arg.constructor
和arg.hasOwnProperty
是未定义的。
在之前的版本 0.7.2 中,这两个语句的计算结果都为 true:
有谁知道实际上作为第二个参数传递了什么,或者为什么这些通常存在于 JS 对象上的属性是未定义的?
编辑如下:
我可以通过这样做来解决这个问题:
但我不想记住如何为每个解析器功能做到这一点。如果有一种方法可以将其配置为在某种预解析挂钩中发生,有谁知道怎么做?
javascript - graphql-tools:延迟获取?
我正在尝试使用 Apollo 的 graphql-tools 简化 graphql 服务器。我想做延迟获取,但无法像使用 javascript 类作为解析器时那样返回承诺。
这是我得到的:
架构
解析器
解决方法:
仅当请求地址时才调用 getAddresses 方法。在基于类的方法中,我可以让 getAddresses 返回一个 Promise,但如果我尝试使用这种机制,它会抱怨不返回 Iterable。必须有某种方法仅在请求时获取地址,但绘制空白,到目前为止还没有找到示例。
security - GraphQL 中的 SQL 注入
我正在使用 GraphQL(Apollo GraphQL),目前,我正在使用 owasp 安全工具(OWASP ZAP)对我的端点进行安全测试。我收到类似端点中的 sql 注入的警报(可能有 SQL 注入。)。如何解决 GraphQL 中的 sql 注入。请提供任何建议,提前致谢。
graphql - 如何使用模式语言创建泛型?
使用 facebook 的参考库,我找到了一种破解泛型类型的方法,如下所示:
但我喜欢 Apollo Server 如何以声明方式创建模式。所以问题是,你们如何使用模式语言创建类似泛型的类型?
graphql - 有没有办法将片段传递给graphiql?
可以传递查询,但显然不是片段:
更新 10/12/2017 可以使用 Apollo 的客户端发送片段和查询:
http://dev.apollodata.com/core/fragments.html
但是,这不是原始问题的解决方案;我想在启动时将片段传递给 graphiql 服务器实例。
express - graphql 服务器电子邮件验证示例
我开始使用带有apollo-server-express
and的 graphql 开发一个 express API graphql-tools
。我的注册用户流程步骤是:
用户提交用户名、电子邮件和密码。
服务器通过 Mailgun 向用户发送一封电子邮件,其中包含由 . 生成的唯一链接
uuid
。用户点击链接以验证注册。
但我正在努力解决如何在解析器中绑定突变。见片段:
服务器.js
解析器上的突变
路由配置
路由配置是我卡住的地方,因为对象通过内部的上下文传递给所有解析器graphqlExpress
任何人都可以帮助我或为我推荐任何相关的文章。非常感谢。
graphql - Apollo GraphQL 服务器;设置上下文以处理由触发订阅触发的请求
我了解在创建 GraphQL 服务器时如何设置上下文对象,例如
以便在处理传入请求时将上下文对象传递给我的解析器。
但是,当解析器由订阅触发时,我没有看到此上下文对象(即客户端订阅了 GraphQL 订阅,并定义了订阅触发时要发送给它们的数据的形状);在这种情况下,上下文似乎是一个空对象。
有没有办法确保在 PubSub.publish() 调用之后调用解析器时正确设置我的上下文对象?
neo4j - 在我的 neo4j 数据库中,graphql 突变对于 2 种类型没有按预期工作
我正在为我的测试项目使用 neo4j dB 和 apollo-graphql 服务器。我正在尝试创建一个问答应用程序,用户可以在其中创建一个问题(具有唯一 ID),然后由其他用户回答(类似于 stackoverflow,但功能非常少)。我想在“问题”节点之间创建关系和我的 neo4j 数据库中的“用户”节点通过突变。
所以,在我创建用户类型和问题类型的突变中。但是当我试图在用户(创建问题的人)和问题之间建立关系时,突变没有按预期工作。
这是graphql模式...
这是解析器的突变片段......
在运行这个突变查询之前,我已经在 neo4j db 中插入了一个具有唯一用户 ID“1”的虚拟用户。我在 graphiQL 中运行了这个“ createQuestion ”突变来为现有用户创建一个问题,所以我传递了 userID“1”作为参数,
//createQuestion(questionID: Int!, title: String!, details: String!,userID: Int!)
在运行这个突变查询之后,我希望在现有用户和创建的问题之间获得 [:CREATED_BY] 的关系, 但是我的数据库现在有 2 个具有相同用户 ID“1”的用户(即多了一个具有相同用户 ID 的用户“1”已被插入,并且这个新插入的用户和问题节点之间现在存在关系)。
我需要的是避免创建具有相同 id 的新重复用户,而只是在现有用户和问题之间创建关系。那么有人可以让我知道我在这里犯了什么错误吗?
graph - Custom field not getting published in subscription apollo server
I'm trying to publish the newly added post, but the fields author
and voteCount
which are custom fields and reference another type were not being publish so that I got undefined on those fields.
My schema:
Resolver
And the subscription in React client:
The field voteCount
is undefined:
While using queries or mutations, it get published normally, what should I do? Thank you.