使用Campground.findById(req.params.id,function(err,foundCampground)时出现强制转换异常,我不知道为什么

时间:2018-11-07 00:09:55

标签: javascript html mongoose

我对Web开发人员还很陌生,实际上我正在做关于udemy的训练营课程,但是他们不会回答我的问题,因此我无法在Internet上找到它。

我正在使用猫鼬,这是我的代码:

var campgroundSchema = new mongoose.Schema({
   name: String,
   image: String,
   description: String
});

var Campground = mongoose.model("Campground", campgroundSchema);

app.get("/campgrounds/:id", function(req, res){
    //fubd tge canogriybd wutg provied ID
    Campground.findById(req.params.id, function(err, foundCampground){
        if(err){
            console.log(err);
        } else {
             res.render("show", {campground: foundCampground});
        }
    });
});

它抛出强制转换异常:

CastError:对于模型“ Campground”,路径“ _id”上的值“ 5bdf29526cb8bc0a83765ab6”的对象ID转换失败     在MongooseError.CastError(/home/ubuntu/workspace/YelpCamp/v2/node_modules/mongoose/lib/error/cast.js:29:11)

我已经搜索了很多内容,但是找不到我的问题的答案。请帮忙!

1 个答案:

答案 0 :(得分:0)

我认为您提供的ID无效。如果您提供任何无效的ID,猫鼬将无法将其转换并找到它。请仔细检查您的ID,然后发送另一个请求。

并尝试一次findOne()。