MERN 堆栈上的 FindOneAndDelete 将返回成功但数据仍在数据库中?
Posted
技术标签:
【中文标题】MERN 堆栈上的 FindOneAndDelete 将返回成功但数据仍在数据库中?【英文标题】:FindOneAndDelete on MERN stack would return successful but the data is still in database? 【发布时间】:2021-08-17 06:02:26 【问题描述】:我正在尝试在我的DELETE
端点上的“mongoose”中使用findOneAndDelete
方法,使用“Expressjs”作为我的服务器,并使用“reactjs”在 try-catch 中处理提取 API 以删除选定的数据。
我得到了 200,但删除结果 json 带来了 n=0 游戏被删除,并且数据没有从我的数据库中删除。代码如下:
端点:
router.delete('/trivia/:name', async (req, res) =>
const gameToDelete = req.params.name;
try
const deleteQuery = games.Trivia.findOneAndDelete( name: gameToDelete );
const deleteResult = await deleteQuery.deleteOne();
console.log("Deleting a game from database", deleteResult);
res.send(deleteResult);
catch (error)
console.log("Failed to delete trivia", gameToDelete);
res.status(500).send( error: error.code, message: "Something went wrong, I couldn't delete your game" );
);
响应获取请求:
async function onDelete(game)
try
const res = await fetch(`/game/trivia/:$game`,
method: "DELETE",
body: null,
headers:
"Content-Type": "application/json"
,
);
catch (error)
console.error("error", error);
;
【问题讨论】:
【参考方案1】:问题实际上在于:获取删除请求! 我必须纠正
const res = await fetch(`/game/trivia/:$game`,
然后放
const res = await fetch(`/game/trivia/$game`,
改为
【讨论】:
以上是关于MERN 堆栈上的 FindOneAndDelete 将返回成功但数据仍在数据库中?的主要内容,如果未能解决你的问题,请参考以下文章