删除突变返回null

我有一个待办事项清单,在此清单中,我已成功设法添加新项目和更新缓存,现在致力于添加删除突变。我的最终目标是从delete突变中返回一个ID,该ID可用于更新客户端的待办事项的整个列表。


我尝试将项目的ID传递给突变,但它返回null。


图式


type Todo {

  _id: ID!

  todo: String!

}


type RootMutation {

  deleteTodo(_id: ID!): Todo

}

解析器


  deleteTodo: async function({ _id }, req) {

    return await Todo.deleteOne({ _id });

  }

使用以下代码在http:// localhost:3000 / graphql的graphql界面中测试了此突变:


mutation {

  deleteTodo (_id: "example0101010101001010101aasdsadasd"){

        _id

    }

}

得到这个错误


{

  "errors": [

    {

      "message": "Cannot return null for non-nullable field Todo._id.",

      "locations": [

        {

          "line": 3,

          "column": 3

        }

      ],

      "path": [

        "deleteTodo",

        "_id"

      ]

    }

  ],

  "data": {

    "deleteTodo": null

  }

}

当我将一个项目的ID传递给该突变时,预期会返回此已删除项目的ID,但我一直为空。我怀疑我的解析器功能可能有问题。



呼如林
浏览 175回答 1
1回答

慕尼黑的夜晚无繁华

您可能不想在deleteOne这里使用该方法。纵观类型定义为mongoose,remove,deleteOne并deleteMany不会返回删除的文档。使用findByIdAndRemove代替,它将返回已删除的文档;如果找不到,则返回null。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript