gpt4 book ai didi

javascript - findByIdAndRemove 导致错误

转载 作者:行者123 更新时间:2023-11-30 20:48:06 24 4
gpt4 key购买 nike

任何人都可以帮助找出为什么 Mongoose 在下面的删除路由中 findByIdAndRemove ...

//DELETE Route
app.delete("/blogs/:id", function(req, res){
//Destroy blog
Blog.findByIdAndRemove(req.params.id, function(err){
if(err){
res.send(err);
} else {
res.redirect("/blogs");
}
});
});

...生成以下错误:

message: "Cast to ObjectId failed for value "5a6a8f967c9a190507b03433 " at path "_id" for model "Blog"",
name: "CastError",
stringValue: ""5a6a8f967c9a190507b03433 "",
kind: "ObjectId",
value: "5a6a8f967c9a190507b03433 ",
path: "_id"

非常感谢您的帮助。

最佳答案

问题是您从客户端发送一个 16 个字符长的字符串,而方法 findOneByIdAndRemove 需要一个 ObjectId。这样做可以根除这个问题,

var mongoose = require('mongoose'); //remove it as you might already it
var ObjectId = mongoose.Types.ObjectId;

app.delete("/blogs/:id", function(req, res){
//Destroy blog
Blog.findByIdAndRemove(ObjectId(req.params.id), function(err){
if(err){
res.send(err);
} else {
res.redirect("/blogs");
}
});
});

此外,请确保 _id 的长度为 16 个字符,两边不允许有空格。

关于javascript - findByIdAndRemove 导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48480619/

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