javascript – Mongoose:TypeError:hex不是函数

我正在使用mongoose开发一个简单的数据持久性应用程序,之后遇到了这个错误

CastError: Cast to ObjectId Failed for value “{ _id: ‘id’ }” at path “_id” for model ‘foo’

我尝试使用各种线程建议的mongoose.Types.ObjectId,一个部分:https://stackoverflow.com/a/17223701/4206519,但现在我收到一个错误

TypeError: hex is not a function.

以下是代码的相关部分:

app.get('/campgrounds/:id',function(req,res){
    var id = req.params.id;
    var ObjectId = mongoose.Types.ObjectId(id);
    Campground.findById(ObjectId,function(err,found){
        if (err) {
            console.log(err);
        } else {
            //render show template with that campground
            res.render('show.ejs',{campground: found});
        } 
    });
});

app.listen(3000,function(){
    console.log("server has started");
});

作为一个新手,我可能在这里犯了一个简单的错误,任何帮助将不胜感激.

解决方法

从过去2天起,我也遇到了同样的问题,这是由于版本问题

我正在使用这些版本
“mongodb”:“^ 2.2.19”,

“mongoose”:“^ 4.7.6”,
并得到Hex不是函数错误

然后我将版本更改为
“mongodb”:“2.1.7”,
“mongoose”:“4.4.8”

它开始工作所以我认为他们已经删除了十六进制功能和其他所以尝试安装此版本后在你的package.json中,不要在版本名称之前使用^添加“mongodb”:“2.1.7”,“mongoose”:“4.4.8”并安装

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...