我使用的是Mongoose 4.13.11
,我的代码按预期工作,但是当我升级到5.0.15
时,当我尝试保存对象时,我开始出现以下错误TypeError: Cannot read property 'catch' of undefined
并找到错误。
我已经阅读过这个问题似乎是Save()
函数没有返回Promise
,我正在使用bluebird
并且所有内容都在上一个{{1版本Mongoose
我错过了什么或做错了什么,因为4.13.11
应该按照已实施的方式运作。
app.ts
.catch()
Home.ts
mongoose.Promise = bluebird;
mongoose.connect(mongoUrl).then(
() => { /** ready to use. The `mongoose.connect()` promise resolves to undefined. */ },
).catch(err => {
console.log("MongoDB connection error. Please make sure MongoDB is running. " + err);
// process.exit();
});
答案 0 :(得分:0)
在mongoose中调用save的两种方法
<强>无极强>
newUser.save().
then((data) =>{
console.log("saved data ",data);
res.json({ message: 'User created!' });
}).catch(function (error) {
console.log(error);
res.json({ message: 'User not created!' });
});
<强>回调强>
newUser.save(function(err,data) {
if (err){
console.log(error);
res.json({ message: 'User not created!' });
}
else{
console.log("saved data ",data);
res.json({ message: 'User created!' });
}
})
您可以通过设置此
来启用mongoose中的promisemongoose.Promise = global.Promise;