如何在GraphQL中获取特定数据?解决非空字段返回空值错误
解决GraphQL中"Cannot return null for non-nullable field Query.employee."错误
你的查询语句:
query Employee($id: Int!) { employee(id: $id) { id FirstName LastName Age DateOfJoining Title Department EmployeeType CurrentStatus } }
遇到的错误:
"message": "Cannot return null for non-nullable field Query.employee.",
以下是几个常见的排查方向和解决方法:
- 目标ID不存在:你的Schema里
Query.employee应该被定义成了Employee!(非空类型),但如果传入的$id在数据源中没有对应员工记录,Resolver返回null就会触发这个错误。要么确认传入的ID是正确有效的,确实存在对应员工;如果业务允许查询不到时返回null,就把Schema里的employee: Employee!改成employee: Employee。 - Resolver逻辑出错:检查处理
Query.employee的Resolver代码,比如数据库查询语句是否写错、有没有权限拦截导致返回null、数据源连接是否正常。确保ID有效时能正确返回完整的Employee对象,无效时要么抛出明确的业务错误(比如"员工不存在"),要么调整字段的可空性。 - 变量传递错误:确认请求时是否正确传递了
$id变量,比如有没有拼写错变量名、是不是传了字符串类型(比如"123"而不是123)导致Resolver无法正确匹配数据。用GraphQL Playground或客户端工具检查请求的变量部分,确保$id是有效的Int值。
内容的提问来源于stack exchange,提问作者Smeet Patel
相关产品推荐
相关产品推荐

