如何解决我的graphql服务器查询返回空值
我编写了一个graphql API,该API使用MongoDB驱动程序连接到在我的计算机中分配的Mongo数据库,并具有一个Query
解析器
getServiceByType: async (_,args) => {
const serviceData = await db
.collection("service")
.find({ type: args.type })
.toArray();
let services = [];
return await serviceData.map(async (value) => {
const dbUser = await db
.collection("user")
.findOne(ObjectID(value.user));
const userFiltered = pick(dbUser,["username","email"]);
const { user,...withoutUser } = value;
const filledValue = { ...withoutUser,user: userFiltered };
services.push(filledValue);
console.log(services);
return services;
});
},
那应该返回Service
模式和与其相关的User
的值。
console.log(services)
显示了我期望的结果
[
{
_id: 5f1ca8e2d866d3536c102e07,name: 'Second Service',description: 'Creating second service for test',type: 'Food',user: { username: 'TestUser',email: 'Test@test.com' }
}
]
但是在Graphql Playground
中会引发以下错误消息:
"message": "Cannot return null for non-nullable field Service._id."
我不知道Query
解析器出了什么问题。
修改
结果类型def看起来像这样:
type User {
_id: ID!
name: String!
username: String!
password: String!
email: String!
type: String!
country: String!
transactions: Int
}
type Service {
_id: ID!
name: String!
description: String!
user: User!
type: String!
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。