Mongoose:TypeError:hex不是函数

Pan*_*wal 5 javascript mongoose mongodb node.js

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

CastError:对于模型'foo',对于路径"_id"的值"{_id:'id'}",Cast to ObjectId失败

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

TypeError:hex不是函数.

以下是代码的相关部分:

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");
});
Run Code Online (Sandbox Code Playgroud)

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

小智 6

从过去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"并安装