如何解析 GraphQL 查询中的数组实体?

How to resolve array entities in a GraphQL-Query?

我有一个 graphql 查询,我试图在其中获取 Post 的所有字段。

{
    getSpaceByName(spaceName: "Anime") {
        spaceId
        spaceName
        spaceAvatarUrl
        spaceDescription
        followingIds {
            User {
                id
                name
                username
            }
        }
    }
}

在此查询中有一个 followingIds 数组,它是一个字符串数组,其中包含关注此页面的所有用户的 ID。 然后我使用 Field Resolver 来解析所有这些 ID 并返回一个用户数组

  @FieldResolver(() => User)
  async followingIds(@Root() space: Spaces) {
    const spaceAcc = (await Spaces.findOne({
      where: {
        spaceName: space.spaceName,
      },
    })) as Spaces;
   const users  = []
   await users.push(await User.findByIds(spaceAcc.followingIds as string[]) as User[])
   console.log(users)
   return users
  }

这是我从我的服务器得到的

这是我在 GraphQL 查询中调用它时遇到的错误。

如何解决这个用户实例,我正在进入所有用户字段并使用我的 Graphql-Query return 它?

尝试像这样更改您的字段解析器:

@FieldResolver(() => [User])
async followingIds(@Root() space: Spaces) {
  const spaceAcc = (await Spaces.findOne({
    where: {
      spaceName: space.spaceName,
    },
  })) as Spaces;
  const users  = await User.findByIds(spaceAcc.followingIds as string[]) as User[];
  console.log(users);
  return users;
}

然后像下面这样更改您的查询:

{
    getSpaceByName(spaceName: "Anime") {
        spaceId
        spaceName
        spaceAvatarUrl
        spaceDescription
        followingIds {
            id
            name
            username
        }
    }
}