我很擅长在Node中完成这类任务。我有一个POST方法(快速),它会重现一系列对象,如:
[{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'},]
然后,我需要对数组中的每个对象进行更新。 我正在使用sequelize:
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,但是我没有达到所需的结果。
抱歉英语不好,希望能理解我,谢谢你的帮助。
答案 0 :(得分:1)
阅读承诺,所有Sequelize的函数都返回promises,你可以通过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);
})