如何解决“变异返回数据为空”?

Posted

技术标签:

【中文标题】如何解决“变异返回数据为空”?【英文标题】:How to solve "mutation returning data null"? 【发布时间】:2020-03-05 21:46:24 【问题描述】:

我正在使用 apollo-server,想学习 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
  


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

【问题讨论】:

【参考方案1】:

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

const resolvers = 
  Query: 
    getBooks: () => books,
  ,
  Mutation: 
    addBook: (_, input) => 
      // ... code to add book somewhere
      const addedBook = insert(input.title, input.author);
      return addedBook; // i.e. title: input.title, author: input.author;
    
  

【讨论】:

以上是关于如何解决“变异返回数据为空”?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决“文件上传返回JSON数据,在IE下提示下

Document Stream snapshot.hasData 返回 true 但没有数据,如何解决这个问题?

什么是错误错误:返回错误:调用区块链数据时执行恢复以及如何解决?

用axios请求接口数据时,返回两层data数据,应该如何解决?

如何解决DownloadOperation的AttachAsync不会立即返回?

如何解决Python selenium webdriver返回空白文件