Javascript 为什么我不能解构';输入';我怎样才能得到;标题「;我在请求中传递了哪个?

Javascript 为什么我不能解构';输入';我怎样才能得到;标题「;我在请求中传递了哪个?,javascript,graphql,graphql-js,Javascript,Graphql,Graphql Js,声明typeDefs const typeDefs = gql` type Todo { _id: ID, title : String, done : Boolean } type QueryTodo { todos : [Todo] } input TodoInput { title : String } type Query {

声明typeDefs


const typeDefs = gql`
    type Todo {
        _id: ID,
        title : String, 
        done : Boolean
    }
    type QueryTodo {
        todos : [Todo]
    }
    
    input TodoInput {
        title : String
    }
    
    type Query {
        todos : [Todo]
    }
    
    type Mutation{
        createTodo(input: TodoInput): Todo
    }

`;
export {typeDefs}
然后在解析器中,我声明了密钥变异。 下面是我的解析器代码

import {Todo} from "../../DB/Models/Todo";


const resolvers = {
    Query:{
        todos:async()=>{
            return await Todo.find()
        }
    },
    Mutation: {
        createTodo : ({input}) => {
            console.log(input)
            return {_id:"12312321",title:input,done:false}
        }
    }
}
export {resolvers}
当我试图提出请求时,我得到了一个错误

mutation {
  createTodo(input: {
   title:"string"
  }) {
    _id
  }
}
我得到的回应是

“错误”:[ { “消息”:“无法对“未定义”的属性“输入”进行分解,因为它是未定义的。”, “地点”:[ { "线":2,, “专栏”:3 } ], “路径”:[ “createTodo” ], “扩展”:{ “代码”:“内部服务器错误”, “例外情况”:{ “stacktrace”:[

如何获取在请求中传递的参数“title”

请参见:

解析器函数接收四个参数:

  • obj
    上一个对象,它通常不用于根查询类型上的字段
  • args
    在GraphQL查询中提供给字段的参数
  • context
    提供给每个冲突解决程序并保存重要上下文信息的值,如当前登录的用户,或 访问数据库
  • info
    保存与当前查询相关的字段特定信息以及架构详细信息的值

第一个参数是
变异
解析程序模式的
值-显然
未定义
,如果您没有传递任何.To访问(和解构)查询传递的参数,请使用第二个参数。

您使用
typeDefs
解析器做什么?谢谢您的回答!