如何在同步模式下保存猫鼬

Gab*_*ong 5 mongoose

当我保存4条记录时,我需要逐个保存它们,所以我的代码是

a.save(function(){
 b.save(function(){
  c.save(function(){
   d.save(function(){
   }
  }
 }
}
Run Code Online (Sandbox Code Playgroud)

我怎么能写代码

a.save();
b.save();
c.save();
d.save();
Run Code Online (Sandbox Code Playgroud)

并使保存在同步模式

Jur*_*vrh 4

您无法真正创建 Moongoose(或任何其他带有 db 的东西)的同步模式,因为 Node.js 不是以这种方式创建的。但有两种方法可以让它变得更容易或更干净。

如果所有 4 条记录都是同一模型,那么您可以创建此元素的数组并使用 Moognoose insertMany ( http://mongoosejs.com/docs/api.html#model_Model.insertMany )。如果没有,您可以使用异步库(http://caolan.github.io/async/docs.html)。在这种情况下,您的代码将如下所示:

var objArr = [a, b, c, d];
async.each(objArr, function(object, callback){
    object.save(function(err){
        if(err) { 
            callback(err)
        }
        else { 
            callback() 
        }
    });
}, function (err){
    if(err) { 
        //if any of your save produced error, handle it here
    } 
    else {
        // no errors, all four object should be in db
    }
});
Run Code Online (Sandbox Code Playgroud)