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升级到最新版本后,一切正常。
这给了我一个教训,我不应该单独升级单个模块,而是关心兼容性问题。