我有这个突变,它会按预期返回:id,url和description。
post(parent, args, context, info) {
const userId = getUserId(context);
const user = await context.User.findOne({ _id: userId });
return context.Link.create(
{
url: args.url,
description: args.description,
postedBy: userId
},
}
问题是,当我添加成功更新Refs to children
的功能时async post(parent,args,context,info){
const userId = getUserId(context);
const user = await context.User.findOne({ _id: userId });
return context.Link.create(
{
url: args.url,
description: args.description,
postedBy: userId
},
**function(error, createdLink) {
user.links.push(createdLink._id);
user.save(createdLink);
}**
);
}
在mongoose和mongo中,一切工作都很完美,但是graphQL返回null:
{
"data": {
"post": null
}
}
我做错了什么?
答案 0 :(得分:0)
请勿混用回调和承诺-请参见常见方案#6 here。
如here in the docs所述,将回调传递给方法意味着将结果传递给回调,而不是在结果Query对象的then
函数内部将其提供。只是恪守承诺。
const link = await context.Link.create({
url: args.url,
description: args.description,
postedBy: userId
});
user.links.push(link._id);
await user.save();
return link;