微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决为什么在进行突变时出现“无法为不可为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 举报,一经查实,本站将立刻删除。