2017-05-30 90 views
0

我很新,在Node中執行此類任務。我有一個POST方法(表達)至極recive像對象的數組:更新所有行,然後發送響應集合

[{F1:'123',F2:'a',F3:'b',F4:'Z'}, 
{F1:'124',F2:'a',F3:'b',F4:'Z'}, 
{F1:'125',F2:'a',F3:'b',F4:'Z'}, 
{F1:'126',F2:'a',F3:'b',F4:'Z'},] 

然後,我需要在陣列中的每一個對象做一個更新。 即時通訊使用續集:

MODEL.update(
    { 
     att4: art['F4'], 
    }, 
    { 
    where:{ 
      att1: {$eq: art['F1']} 
      } 
    }).then(function(result) 
    {   
     res.status(200).send(); 

    }).catch(function(err) 
    { 
     res.status(500).send(err); 
    }) 

而這項工作爲1個對象。

但我需要以下內容:當所有的更新都被處理,然後發送一個響應。

我嘗試用

req.body.forEach(function(o) 
    { 
     updateO(o) 
    },this); 

和updateO(O)做Model.Update,但我不實現所需的結果。

對不起,英文不好,希望能理解我,謝謝你的幫助。

回答

1

閱讀有關承諾,所有Sequelize的函數返回的承諾,您可以通過Promise.all

var objects = req.body; 
Promise.all(objects.map(object=>{ 
    return MODEL.update({att4: object.F4},{where:{att1: object.F1}); 
})).then(function(result){   
    res.status(200).send(); 
}).catch(function(err){ 
    res.status(500).send(err); 
}) 
+0

感謝的處理多個查詢。閱讀一些文章,我會得到一個類似於你的答案的類似問題! – federhico

相關問題