Javascript 为什么我不能解构';输入';我怎样才能得到;标题「;我在请求中传递了哪个?
声明typeDefsJavascript 为什么我不能解构';输入';我怎样才能得到;标题「;我在请求中传递了哪个?,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 {
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
在GraphQL查询中提供给字段的参数args
提供给每个冲突解决程序并保存重要上下文信息的值,如当前登录的用户,或 访问数据库context
保存与当前查询相关的字段特定信息以及架构详细信息的值info
第一个参数是
变异
解析程序模式的根
值-显然未定义
,如果您没有传递任何.To访问(和解构)查询传递的参数,请使用第二个参数。您使用typeDefs
和解析器做什么?谢谢您的回答!