Graphql 如何解决;突变返回的数据为空;?

Graphql 如何解决;突变返回的数据为空;?,graphql,apollo-server,Graphql,Apollo Server,我正在使用apollo服务器,希望学习graphql模式、查询和突变,但我没有获得正确的资源来理解突变是如何工作的,以及如何在解析器中定义突变 我尝试过在解析器中添加类似于“查询”的“变异”,但没有用 #schema const typeDefs = gql` type Book { title: String author: String } type Mutation { addBook(title: String, author: String):

我正在使用apollo服务器,希望学习graphql模式、查询和突变,但我没有获得正确的资源来理解突变是如何工作的,以及如何在解析器中定义突变

我尝试过在解析器中添加类似于“查询”的“变异”,但没有用

#schema
  const typeDefs = gql`
  type Book {
    title: String
    author: String
  }

  type Mutation {
    addBook(title: String, author: String): Book
  }

  type Query {
    getBooks: [Book]
  }
`;

#resolvers
const resolvers = {
  Query: {
    getBooks: () => books
  }
};


#querying  in graphql playground
mutation{
  addBook(  title: "a sad love story",author:"pavan kalyan"){
    title
    author
  }
}

#result i got
{
  "data": {
    "addBook": null
  }
}

我希望在结果中获得标题和作者,与我在查询中传递的参数相同
并且没有错误消息

您需要在解析器中定义突变:

const解析器={
查询:{
getBooks:()=>书籍,
},
突变:{
addBook:({input})=>{
//…将书本添加到某个位置的代码
const addedBook=insert(input.title,input.author);
返回addedBook;//即{title:input.title,author:input.author};
}
}
}