我想知道在对多个记录进行更改(尤其是添加和删除)的操作中保存多个记录的最佳做法是什么。最终目标是让一个函数可以访问操作中的所有已更改数据。目前,我正在嵌套保存,以便最里面的保存可以访问所有更新记录中的数据。以下是我如何保存的示例:
record1.save(function (error, firstRecord) {
record2.save(function (erro, secondRecord) {
record3.save(function (err, thirdRecord) {
res.send({recordOne: firstRecord, recordTwo: secondRecord, recordThree: thirdRecord});
});
});
});
使用这种保存结构,recordOne,recordTwo和recordThree显示服务器上的预期值。但是,检查localhost / 1337 / modelName会显示模型未正确更新并且数据不正确。
答案 0 :(得分:1)
您可以使用内置的承诺引擎Bluebird来实现。
Promise.then(function() {
return [record1.save(),record2.save(),record3.save()];
}).spread(function(record1_saved,record2_saved,record3_saved){
res.send({recordOne: record1_saved, recordTwo: record2_saved, recordThree: record3_saved});
req.namespamce = this;
}).catch(function(err){
res.badRequest({
error: err.message
});
req.namespamce = this;
});