我有一个 graphql 查询,它得到一个Meeting
对象与Client
object:
type Meeting {
address: String!
client: Client
}
type Client {
displayName: String!
}
The displayName
是必需的,但是client
不是。
如果我将其查询为
{
getMeeting(meetingId: "43bbea6ea0c6112b0abcf11d") {
address
client {
displayName
}
}
}
而且这次会议没有客户,然后我收到错误:
Error: Cannot return null for non-nullable field Client.displayName.
我只是希望如果有客户,我会得到其完整的详细信息。如果没有,我会得到client: null
.
如果我将从中删除所需的displayName
,当 client 为空时它也会工作,我会得到
"client": {
"displayName": null
}
正如我所料。但我仍在寻找一种方法来强制执行所需的displayName
- 仅当有客户时。
在 graphql 中有什么办法可以做到这一点吗?
所以问题是因为mongoose
.
当我从数据库中获取数据时,猫鼬添加了空的嵌入子文档client: {}
即使没有这样的密钥meeting
数据库中的文档(和console.log(meeting)
不显示此字段 - 仅console.log(meeting.client)
prints client: {}
).
Hence graphql
尝试返回所需的字段client
, 因为client
is not undefined
和我想的一样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)