gpt4 book ai didi

javascript - 删除突变返回 null

转载 作者:行者123 更新时间:2023-12-01 01:02:12 24 4
gpt4 key购买 nike

我有一个待办事项列表,我已经成功地添加了新项目并更新了缓存,现在正在努力添加删除突变。我的最终目标是从删除突变中返回一个 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 接口(interface)中测试了这个突变使用以下代码:

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,但我一直得到 null。我怀疑我的解析器功能可能有问题。

链接到 github repo

最佳答案

您可能不想在此处使用 deleteOne 方法。看着type definitions对于 mongooseremovedeleteOnedeleteMany 不会返回已删除的文档。使用findByIdAndRemove相反,它将返回已删除的文档,如果未找到则返回 null。

关于javascript - 删除突变返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55961581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com