【问题标题】:Mongoose error on promise with save?保存时承诺的猫鼬错误?
【发布时间】:2017-04-26 19:49:57
【问题描述】:

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

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

但是,如果我尝试用这样的模型获得承诺,那么它会起作用。

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

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

【问题讨论】:

    标签: node.js mongoose


    【解决方案1】:

    Model#save 返回一个承诺,所以你应该跳过.exec()

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

    【讨论】:

      【解决方案2】:

      这样的?

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

      【讨论】:

        猜你喜欢
        • 2017-06-15
        • 2013-06-29
        • 2018-08-19
        • 1970-01-01
        • 2015-04-01
        • 2021-12-04
        • 2015-05-12
        • 1970-01-01
        • 2012-12-14
        相关资源
        最近更新 更多