mongoose findById将无法使用正确的ID

我正在创build一个存储用户信息的数据库。 以前,系统运行良好,在我进行mongoosenpm更新后,系统失败,我不知道为什么。 以下是我遇到的错误消息。

CastError: Cast to ObjectId failed for value "xxxxxxxxxxxxxxx" at path "_id" for model "User" 

然后,我写了一些简单的testing代码来testing数据库是否连接成功。 例如:

 User.findOne({firstName: "David"}, function(err, user){console.log(user.lastName)}); 

以上工作完美。

然后我直接从数据库中find相应的Id,并创build如下variables:

 var testId = "abcde" 

并尝试了下面的代码:

 User.findById(testId, function(err, user){console.log(user.firstName)}); 

然后它只是输出错误消息。

我试过mongoose.Types.ObjectId.isValid('abcde') (abcde就是例子),它返回true。 因此,我真的没有想法,为什么它不工作…这是一个mongoose错误?

请帮助,如果你知道答案,非常感谢你!

我刚刚解决了这个问题。

正如我所提到的,我更新mongoose后findById函数不起作用。 我在代码上挣扎了好几天,当我今天早上醒来的时候,突然想到升级我的node.js。

这工作。

将node.js从v4.xx升级到最新版本后,一切正常。

这给了我一个教训,我不应该单独升级单个模块,而是关心兼容性问题。