You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GraphQL查询无法返回数组:getUsers查询报错求助

GraphQL查询报错:Cannot query field "users" on type "User"

我刚接触GraphQL,在Node.js项目中实现getUsers查询以返回用户数组,但在GraphQL Studio测试时出现错误:"GraphQLError: Cannot query field \"users\" on type \"User\"。目前仅能在user查询中返回指定的具体字段,相关代码如下:

报错的查询语句

{
  getUsers {
   users
  }
}

user-resolvers.js中的getUsers resolver

getUsers: async(parent, args, context, info) => {
    try {
      let users = await User.find()
      console.log(users)
      // console.log(users) shows all of the users in the format found in type Users 
      return users;
    }
    catch (error) {
      throw error;
    }
  },

schema.js相关代码

export default`

type Users {
    _id: ID!
    username: String
    email: String!
    firstName: String
    lastName: String
    basicInfo: [BasicInfo]!
    avatar: String
    date: Date
  }

  type BasicInfo {
    birth_date: String!
    age: Int!
    feet: Int!
    inches: Int!
  }
...
  type Query {
    getUsers: [Users]
  }
...

  schema {
    query: Query
    mutation: Mutation
  }
`;

index.js相关代码

import UserResolvers from './user-resolvers.js';
import User from '../../models/User.js';

export default {
  Query: {
    user: UserResolvers.user,
    getUsers: UserResolvers.getUsers,
  },

...
};

之前正常返回的user查询示例

...
const user = await requireAuth(user)
 return {
      _id: user._id,
      username: user.username,
      firstName: user.firstName,
      email: user.email,
}

错误原因与解决办法

错误原因

你的getUsers在schema中定义的返回类型是[Users](Users对象的数组),但查询时却尝试在getUsers下请求users字段——而Users类型本身并没有users这个字段,这就导致了GraphQL报错。

解决步骤

  1. 修正查询语句:直接请求Users类型包含的具体字段,而非不存在的users字段。正确的查询示例:
{
  getUsers {
    _id
    username
    email
    firstName
    basicInfo {
      birth_date
      age
    }
    # 其他需要的字段都可以在这里列出
  }
}
  1. 确认resolver和schema的一致性:
    • 你的resolver已经正确返回了用户数组(从console.log(users)的输出可以确认),这部分没问题。
    • schema中getUsers: [Users]的定义也正确,和resolver返回的数组类型匹配。

简单来说,当查询返回的是对象数组时,你需要在查询中指定数组中每个对象要返回的字段,而不是试图用一个users字段去包裹它们。

内容的提问来源于stack exchange,提问作者pelotador.1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 13:05:27