当我尝试通过模型实例的保存操作获得承诺时。我收到错误:undefined is not a function
instance.save().exec().then(..)
但是,如果我试图通过这样的模型获得承诺,那么它就可以了。
model.find(..).exec().then(..)
没有办法获得保存行动的承诺。目前我只是通过回调来保存功能。但是,为了保持一致性,我希望以相同的方式执行所有数据库操作。
答案 0 :(得分:32)
Model#save
会返回一个承诺,因此您应该跳过.exec()
:
instance.save().then(...);
答案 1 :(得分:3)
这样的东西?
let mongooseInstance = new MongooseInstance(Obj);
return mongooseInstance
.save()
.then(savedObj => {
if (savedObj) {
savedObj.someProperty = null;
success.data = savedObj;
return Promise.resolve(success);
} else {
return Promise.reject(error);
}
});
并且可能使用catch
?
mongooseInstance
.save()
.then(saved => console.log("saved", saved))
.catch(err => console.log("err while saving", err));