验证后失败:标题:需要路径`title`。”,在graphql

时间:2019-08-22 07:01:41

标签: graphql

我尝试在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]

1 个答案:

答案 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
  }
}