如何在一个操作中保存SailsJS中的多个记录?

时间:2015-08-06 17:17:10

标签: node.js nested sails.js waterline

我想知道在对多个记录进行更改(尤其是添加和删除)的操作中保存多个记录的最佳做法是什么。最终目标是让一个函数可以访问操作中的所有已更改数据。目前,我正在嵌套保存,以便最里面的保存可以访问所有更新记录中的数据。以下是我如何保存的示例:

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会显示模型未正确更新并且数据不正确。

1 个答案:

答案 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;
   });