使用save时的Mongoose错误问题?

12
当我尝试在模型实例上进行保存操作并获取 Promise 时,出现错误:undefined is not a function
instance.save().exec().then(..)

然而,如果我尝试使用这样的模型获取Promise,那么它就可以工作。

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

是否有办法为保存操作获取promise?目前我只是将回调函数传递给保存函数。然而,为了保持一致性,我希望以相同方式执行所有数据库操作。

2个回答

39

Model#save返回一个Promise对象,因此您应该跳过.exec()

instance.save().then(...);

4

这样的吗?

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接