保存时承诺的Mongoose错误?

时间:2015-04-19 23:09:42

标签: node.js mongoose

当我尝试通过模型实例的保存操作获得承诺时。我收到错误:undefined is not a function

instance.save().exec().then(..)

但是,如果我试图通过这样的模型获得承诺,那么它就可以了。

model.find(..).exec().then(..)

没有办法获得保存行动的承诺。目前我只是通过回调来保存功能。但是,为了保持一致性,我希望以相同的方式执行所有数据库操作。

2 个答案:

答案 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));