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

GraphQL查询songs报错:[String!]!类型无子字段不可选择子属性

问题根因

报错和你已经配置的createSong返回类型无关,核心问题是Schema里RootQuery下的songs字段返回类型定义错误。
你当前写的songs: [String!]!声明代表该接口返回「非空字符串组成的非空数组」,String是GraphQL标量类型,不存在子字段,你在查询语句里写songs { song_file_name }尝试读取子字段,自然会触发该报错。
而你实际的resolver逻辑中,songs方法返回的是Song类型的对象数组,和你定义的[String!]!类型完全不匹配。

修复步骤

直接修改Schema中RootQuery的songs字段返回类型,将[String!]!替换为[Song!]!,修改后的RootQuery代码如下:

type RootQuery {
  songs: [Song!]!
}
验证说明

修改完成后重启服务,重新执行你的查询语句即可正常返回结果:

query {
  songs {
    song_file_name
  }
}

你之前参考的帖子里提到的给createSong追加: Song返回类型,是用来解决mutation查询子字段报错的方案,和这次query触发的报错是两个独立问题,你之前只修正了mutation部分的类型定义,没有修改query层songs字段的类型,所以问题没有解决。

内容的提问来源于stack exchange,提问作者TheNomadicAspie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:39:15