GraphiQL 在获取所有记录时返回空值
GraphiQL Returning null Values When Fetching All Records
我正在尝试构建一个简单的 GraphQL 模式。我在本地主机上有一个 json-服务器端点 运行,其中 return 是一些简单的 json 数据。
我可以 return 提供 id 的用户。在架构中执行此操作的查询如下所示:
staff: {
type: StaffType,
args: { id: { type: GraphQLInt }},
resolve(parentValue, { id }) {
return axios.get(`http://localhost:3000/staff/${id}`)
.then(resp => resp.data);
}
}
GraphQL 查询如下所示:
{
staff(id: 1){
id
Name
}
}
它 return 在 GraphiQL 客户端中是这样的:
{
"data": {
"staff": {
"id": 1,
"Name": "John Doe"
}
}
}
当我尝试 return 所有用户时,我的问题就开始了。我创建了另一个查询来尝试从 http://localhost:3000/staff
中获取所有内容而不传入任何参数。如果我在浏览器中直接转到此 url,它会按预期 return 访问所有用户。但是,如果我通过 GraphiQL 尝试它,它似乎 return 一个对象,但所有字段都是空的。 GraphiQL 或控制台上都没有给出错误。代码示例如下:
架构中的查询
allStaff: {
type: StaffType,
resolve(parentValue, args) {
return axios.get(`http://localhost:3000/staff/`)
.then(resp => resp.data);
}
}
GraphiQL 查询
{
allStaff {
id
Name
}
}
我得到的结果
{
"data": {
"allStaff": {
"id": null,
"Name": null,
}
}
}
如果我控制台日志 resp.data 有数据被 returned 并且,正如我所说,端点 returns 数据当我通过浏览器直接访问它时完全符合预期.
我是不是漏掉了什么?
谢谢
JSON 数据可能是一组用户对象,但 GraphQL 仍然期望只有一个。那是因为在您的架构中,您已将 allStaff
的 return 类型定义为 StaffType
。您需要使用 List 包装器对其进行包装,如下所示:
type: new GraphQLList(StaffType),
我正在尝试构建一个简单的 GraphQL 模式。我在本地主机上有一个 json-服务器端点 运行,其中 return 是一些简单的 json 数据。
我可以 return 提供 id 的用户。在架构中执行此操作的查询如下所示:
staff: {
type: StaffType,
args: { id: { type: GraphQLInt }},
resolve(parentValue, { id }) {
return axios.get(`http://localhost:3000/staff/${id}`)
.then(resp => resp.data);
}
}
GraphQL 查询如下所示:
{
staff(id: 1){
id
Name
}
}
它 return 在 GraphiQL 客户端中是这样的:
{
"data": {
"staff": {
"id": 1,
"Name": "John Doe"
}
}
}
当我尝试 return 所有用户时,我的问题就开始了。我创建了另一个查询来尝试从 http://localhost:3000/staff
中获取所有内容而不传入任何参数。如果我在浏览器中直接转到此 url,它会按预期 return 访问所有用户。但是,如果我通过 GraphiQL 尝试它,它似乎 return 一个对象,但所有字段都是空的。 GraphiQL 或控制台上都没有给出错误。代码示例如下:
架构中的查询
allStaff: {
type: StaffType,
resolve(parentValue, args) {
return axios.get(`http://localhost:3000/staff/`)
.then(resp => resp.data);
}
}
GraphiQL 查询
{
allStaff {
id
Name
}
}
我得到的结果
{
"data": {
"allStaff": {
"id": null,
"Name": null,
}
}
}
如果我控制台日志 resp.data 有数据被 returned 并且,正如我所说,端点 returns 数据当我通过浏览器直接访问它时完全符合预期.
我是不是漏掉了什么?
谢谢
JSON 数据可能是一组用户对象,但 GraphQL 仍然期望只有一个。那是因为在您的架构中,您已将 allStaff
的 return 类型定义为 StaffType
。您需要使用 List 包装器对其进行包装,如下所示:
type: new GraphQLList(StaffType),