当我保存4条记录时,我需要逐个保存它们,所以我的代码是
a.save(function(){
b.save(function(){
c.save(function(){
d.save(function(){
}
}
}
}
如何编写像
这样的代码a.save();
b.save();
c.save();
d.save();
并将保存设置为同步模式?
答案 0 :(得分:3)
你不能真正制作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
}
});