我尝试在graphql-yoga中添加变异,但是每次尝试变异时,都会出现错误提示
验证后失败:标题:路径
title
是必需的。”,
我不知道为什么。
这是我的代码
解析器
Mutation: {
createPost: async(root, args, ctx) => {
console.log(args)
try {
const post = new Post({
title: args.title,
description: args.description,
content: args.content
});
const result = await post.save();
console.log(result);
return result
}catch(err) {
throw err
}
}
}
模式
input postInput{
title: String!
description: String!
content: String!
}
type Mutation {
createPost(input: postInput): Post!
}
如果我删除输入类型并直接这样做,这会很好
type Mutation {
createPost(title: String!,description: String!,content: String!): Post!
}
记录结果
{ input:
[Object: null prototype] {
title: 'with input',
description: 'this is de',
content: 'this is conte' } }
为什么我会收到[Object: null prototype]
?
答案 0 :(得分:2)
如果在架构上输入如下输入类型,则必须在解析器中发送数据:
const post = new Post({
title: args.input.title,
description: args.input.description,
content: args.input.content
});
这意味着,在args中,我们需要一个名为 input 的参数,该参数的类型为 Post 。
同时在graphql gui上提供数据时,发送数据如下:
mutation {
createPost(input:{
title: 'with input',
description: 'this is de',
content: 'this is conte'}) {
//return your id or others
}
}