javascript - 如何在sequelize框架上多筆update?

 df0134330 发布于 2022-11-08 19:06

我用express做了restful api接口,前端用angular1.5 $http呼叫接口,之前我都只更新一筆資料,沒有太大問題,代碼如下:

express api部分

router.put('/animals', (req, res, next) => {

  let animal = req.body;
  db.Animal.findOne({
    where: {
      idNo: animal.idNo
    }
  }).then(function (data) {

    data.updateAttributes(animal).then(function (animal) {
      res.json(animal);
    });

  });


});

Angular部分

$http({ 
            method :  'PUT' , 
            url :  '/api/animals' , 
            data :  animal, 
            headers :  { 'Content-Type' :  'application/json' } 
})
.success(function(animal){
    
          alert('更新成功');
      });

但是我現在想更新多筆資料,一個array內的多個animal,目前有兩個思路:

  1. api接口不更改,在angular那寫個for迴圈,多次呼叫同個接口,但這樣似乎要寫個閉包才能確定是不是全部的update 完成了

  2. 更改api部分,angular一次把整個array傳進去,再利用sequelize的某些功能做一次更新,這部分目前只看到兩種做法,

    1.利用promise.all 進行全部更新
    2.一樣的寫法 只是把for迴圈放到api那
    3.或許更高級一點可以利用transaction的功能,如果有一筆更新失敗就rollback??這我從來沒用過不清楚
    
    

請問哪樣做法比較好,具體又要怎麼實現呢? 謝謝

目前是使用Angular1.5提供的$q,可以一次發一個array的$http要求(promise),再用$q.all取得結果,具體代碼如下:

var qPromiseArr = [];
        for(var i=0;i
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有