为什么在进行突变时出现“无法为不可为null的字段返回null”错误?

问题描述

我正在尝试服务器端的(Apollo)GraphQL,并且可能遇到了一个愚蠢的问题。我正在尝试从faundb数据库删除待办事项,但仍在显示下面的链接图像中显示错误。问题是什么?添加待办事项正常工作,但是当我通过id删除待办事项时,图像中出现错误

enter image description here

` **Schema**

    const GET_TodoS = gql`
{
    todos {
        task,id,status
    }
}
`;
const ADD_Todo = gql`
    mutation addTodo($task: String!){
        addTodo(task: $task){
            task
        }
    }
`
const deletetodo = gql`
  mutation deleteTask($id: ID!) {
    deleteTask(id: $id) {
        task
    }
  }
`;
Mutation

const typeDefs = gql`
  type Query {
    todos: [Todo!]
  }
  type Mutation {
    addTodo(task: String!): Todo
    deleteTask(id: ID!): Todo
  }
  type Todo {
    id: ID!
    task: String!
    status: Boolean!
  }
`


const resolvers = {
  Query: {
    todos: async (root,args,context) => {
      try {
        var adminClient = new faunadb.Client({ secret: 'fnAD5rID0MACBTs47TwGR8D1Itfdj3cyo79VVDWD' });
        const result = await adminClient.query(
          q.Map(
            q.Paginate(q.Match(q.Index('task'))),q.Lambda(x => q.Get(x))
          )
        )

        console.log(result.data)

        return result.data.map(d=>{
          return {
            id: d.ts,status: d.data.status,task: d.data.task
          }
        })
      }
      catch (err) {
        console.log(err)
        return err.toString();
      }
    }
    // authorByName: (root,context) => {
    //   console.log('hihhihi',args.name)
    //   return authors.find(x => x.name === args.name) || 'NOTFOUND'
    // },},Mutation: {
    addTodo: async (_,{ task }) => {
      try {
        var adminClient = new faunadb.Client({ secret: 'fnAD5rID0MACBTs47TwGR8D1Itfdj3cyo79VVDWD' });
        const result = await adminClient.query(
          q.Create(
            q.Collection('todos'),{
              data: {
                task: task,status: true
              }
            },)
        )
        return result.ref.data;
      }
      catch (err) {
        console.log(err)
      }
    },deleteTask: async (_,{ id }) => {
      try {
        console.log(id);
        var adminClient = new faunadb.Client({ secret: 'fnAD5rID0MACBTs47TwGR8D1Itfdj3cyo79VVDWD' });
        const result = await adminClient.query(
          q.Delete(q.Ref(q.Collection("todos"),id))
        );
        console.log(result);
        return result.ref.data;
      } catch (error) {
        return error.toString();
      }
    },}
}`

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)