GraphQL 查询在一个字段上运行良好,但在第二个字段上出错?
Posted
技术标签:
【中文标题】GraphQL 查询在一个字段上运行良好,但在第二个字段上出错?【英文标题】:GraphQL query works fine for one field but errors on the second? 【发布时间】:2018-07-02 11:07:18 【问题描述】:我正在使用 Apollo Client 2。我得到的结果对我来说似乎很奇怪,但我是 GraphQL 的新手。
我设置了一个包含 2 个字段的简单架构。当我查询其中一个字段时,它可以找到但另一个返回错误:
架构:
type Query
hi: String
groups: [Group]
type Group
name: String
test: String
解析器:
Query:
hi()
return 'howdy';
,
groups()
// Here I'm mocking a database call
return [ name: '1', test: 'test 1' , name: '2', test: 'test 2' ];
,
,
在 GraphiQL 中,此查询有效:
groups
name
结果:
"data":
"groups": [
"name": "1"
,
"name": "2"
]
但是当我查询测试字段时:
groups
test
我收到一个错误:
"errors": [
"message": "Cannot query field \"test\" on type \"Group\".",
"locations": [
"line": 3,
"column": 5
]
]
【问题讨论】:
您打印的结果似乎不是来自您的解析器。在您的解析器中,您返回名称:“1”,但结果显示 Kickboxing。如果不只是为了这个例子,也许你没有调用同一个服务器? ..第二个来源没有test
字段?
对不起,这是一个错误。我开始使用实际的数据库调用,然后在调试时模拟调用。我忘了更新我的问题,但我现在已经完成了。
您是否尝试刷新 GraphiQL 页面?
【参考方案1】:
我只需要刷新 GraphiQL 页面。呵呵!
更新 - 我又遇到了这个问题,这次不得不在隐身窗口中运行 graphiql。即使您刷新,浏览器缓存似乎也是一个问题。
更新 2 - 这可能是 Meteor 特定的问题,但我需要进一步编辑一个 javascript 文件,以便在我的解析器和架构中进行更改以获取。似乎有很多缓存类型的问题,但我不知道这是 Meteor、Apollo 还是 GraphQL。
【讨论】:
以上是关于GraphQL 查询在一个字段上运行良好,但在第二个字段上出错?的主要内容,如果未能解决你的问题,请参考以下文章
MS Access VBA 调用子程序在第一遍有效,但在第二遍无效
MySQL 查询在 /tmp 中使用了 10G 的空间,并因“Errcode:28 - 设备上没有剩余空间”而死,但在本地运行良好