【问题标题】:How to return a Mongoose object from saveAsync?如何从 saveAsync 返回一个 Mongoose 对象?
【发布时间】:2015-04-14 04:34:42
【问题描述】:

我已经向 Mongoose 承诺了 Bluebird - 除了 saveAsync() 返回的文档只是普通对象并且缺少方法/虚拟之外,一切似乎都可以正常工作。

order.saveAsync().then(function(order) {
  order.save(); // errors with object has no method 'save'

我以“保存”为例,但似乎没有内置方法或我的自定义方法可用。

如何获取从saveAsync 返回的 Mongoose 对象?

【问题讨论】:

  • 这行得通吗? var orderObj= new Order(order); orderObj.save();

标签: node.js mongoose promise bluebird


【解决方案1】:

使用多个参数调用保存回调 - 对象和 numberAffected。因此,承诺通过数组[object, numberAffected] 实现。 (这在 3.0 中有所改变)

因此您可以取消引用数组(手动或获取)、展开或:

 order.saveAsync().then(function(result) {
     var order = result[0];
     return order._id;
 });

使用获取

 order.saveAsync().get(0).then(function(order) {
      return order._id;
 });

使用传播

 order.saveAsync().spread(function(order, numberAffected) {
      return order._id;
 });

【讨论】:

    猜你喜欢
    • 2018-04-03
    • 2021-08-13
    • 2019-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2019-12-14
    相关资源
    最近更新 更多