问题标签 [graphql-tools]
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.
graphql - Apollo:使用 info.mergeInfo.delegateToSchema 将 root 传递给解析器
我有一个拼接的 graphql 模式。一些类型字段被解析为info.mergeInfo.delegateToSchema
这是一个示例(来自apollo docs):
是否可以root
在chirps
解析器中访问?所以root
那里有所有的父字段?当然,另一种方法是用于此目的,但我想,从代码的角度来看,使用 root 会更好,因为在某些情况下context
我已经在使用value。root
node.js - 来自 GraphQLObjectType 模式的 graphql mergeSchemas
我是graphql的新手,所以我遇到了一些问题。基于 nodeJS 的服务器,带有 express 包。我正在用 GraphQLObjectType 表示法为 Apollo Graphql 编写模式。当我想将两个模式合并为一个时,我使用 graphql-tools npm 包中的 mergeSchemas 方法,并在合并时遇到了一些错误。谁能指出我做错了什么?
每个 eventMutations, userMutations 都是 GraphQLObjectType
错误是:
在
有任何想法吗?
graphql - ApolloServer 使用 mergeSchemas,错误:Apollo Server 需要现有架构、模块或 typeDefs
我想我只是错误地使用了这个模块,这就是我收到错误的原因。根据文档,我可以将一组解析器和模式传递给mergeSchemas
来自graphql-tools
. 但我收到此错误:
Error: Apollo Server requires either an existing schema, modules or typeDefs
这是代码:
应用程序.js
合并模式
架构
解析器
graphql - graphql-tools mergeSchemas 和 makeExecutableSchema 之间的区别
所以我问这个问题的原因是因为我可以让这两个都返回一个工作结果,只需替换一个或另一个。那么哪个是正确的使用,为什么?
他们在模式方面的目的是什么?
这两个示例都有效并返回了预期的结果。我相信在这里使用正确的是makeExecutableSchema
但不确定为什么第一个会起作用?
编辑 以防万一拥有类型/解析器会很好:
类型定义
解析器
查询跑
结果
mongodb - 缺少的子文档变成具有未定义值的子文档,并且架构验证失败
我有一个看起来像这样的 schema.graphqls:
和一个补充的猫鼬模式:
我的 mongodb 中有一个像这样的对象(通知所有者故意丢失):
我正在尝试检索此文档,但缺少所有者子文档(这很好,它不是强制性的)。猫鼬结果用未定义的属性填充了这个缺失的子文档,
模式验证失败(因为确实名称和年龄是强制性的,如果子文档存在)。
我得到的实际错误是:
你能指出我在这里做错了什么吗?
提前致谢
node.js - 使用 graphql-tools 打印远程模式时出现 getDirectives 错误
我有两个节点服务器都通过express-graphql
. 我希望我的第一台服务器将其架构与第二台服务器的架构缝合。
我已按照以下说明操作:https ://www.apollographql.com/docs/graphql-tools/remote-schemas
因为我正在使用graphql-tools。
我能够从我的第二个节点服务器中检索架构,但是一旦我尝试打印它(仅使用console.log
),我就会收到此错误:
这会导致服务器死机,但我也能够以某种方式看到架构:
我确实_directives
在远程模式定义中看到了该字段,但文档并不清楚如何处理这个问题。
我也浏览了graphql-tools
repo 的 github 问题,但找不到任何东西。
这是一个代码片段:
欢迎任何建议。
graphql - 为嵌套类型定义编写解析器
假设我的 GraphQL API 有以下类型定义:
那么,我需要多少个解析器呢?我应该只使用一个解析器处理此查询请求books
并返回所有书籍和作者信息,还是应该制作多个解析器,例如Query -> books
,Book -> author
和Author -> books
?我不确定模块化架构和解析器如何协同工作。
typescript - 无法从模式拼接中的另一个 schema.graphql 文件中的其他 schema.graphql 文件访问共享模式
我在 userSchema.graphql 文件中有用户模式;
我有不同的 schema.graphql 文件用于登录和注册
我无法访问登录/注册模式中的用户模式
我正在使用来自 graphql 工具的模式拼接并从 merge-graphql-schema 包中合并 typeDefs 和解析器
我收到错误
编辑 我使用了'merge-graphql-schemas'中的fileLoader,它工作得很好
graphql - express-graphql 解析器参数在解析器中为空,但 info variableValues 填充了名称和值
使用apollo-server-express
and graphql-tools
,我试图从 JSON 对象创建一个最小可行的模式:
这是我的存储库。
当记录和单步node_modules/graphql/execution/execute.js
执行时,execute 的第一个参数argsOrSchema.variableValues
包含查询参数键和值,但是第五个参数variableValues
是未定义的。
根据诸如this GitHub issue之类的一些线程,我可以variableValues
从info
解析器的参数中提取,但是我仍然想知道为什么该args
对象为空?
这是GraphQL 在解析器函数中给出的信息日志的要点
graphql - 检查缺少的解析器
您将如何扫描架构以查找缺少的解析器以查找查询和非标量字段?
我正在尝试使用动态模式,因此我需要能够以编程方式对其进行测试。我已经浏览了几个小时的graphql工具来找到一种方法来做到这一点,但我无处可去......
- checkForResolveTypeResolver - 这仅适用于接口和联合 resolveType 解析器
- 我找不到知道何时应用 defaultFieldResolver 的方法
- 我尝试使用自定义指令添加@requiredResolver,以帮助识别这些字段,但自定义解析器远未得到完全支持:
- 内省与指示
- 没有 graphql-js 指令处理程序(可以使用 graphql-tools 解决这个问题)
任何帮助表示赞赏!