Node.js 从多个表进行续集销毁
我想从多个表中逐个删除记录。在一个路由器下,我怎么能一个接一个地调用下面的销毁函数Node.js 从多个表进行续集销毁,node.js,sequelize.js,Node.js,Sequelize.js,我想从多个表中逐个删除记录。在一个路由器下,我怎么能一个接一个地调用下面的销毁函数 function deleteFromTable1(param1, transaction) { return table1_model.destroy({ where: { param1 }, transaction }); } function deleteFromTable2(param1, transaction) { return table2_model.destroy(
function deleteFromTable1(param1, transaction) {
return table1_model.destroy({
where: { param1 },
transaction
});
}
function deleteFromTable2(param1, transaction) {
return table2_model.destroy({
where: { param1 },
transaction
});
}
function deleteFromTable3(param1, transaction) {
return table2_model.destroy({
where: { param1 },
transaction
});
}
当你说
在单个路由器下
我假设您有一个类似于Node.js
和Express.js
应用程序的设置,其中您的路线和处理程序如下所示:
app.post('/delete',函数(req,res){
//从数据库中删除一些项目
})
在这种情况下,您可以执行以下操作:
功能删除项(请求、恢复){
//既然Sequelize'destroy'调用返回承诺,
//你可以把它们都用“承诺”来包装`
//并“等待”所有问题“解决”(完成)
常量handleSuccessfulDelete=()=>{
res.status(200).json({
现状:200,
信息:“好的”
})
}
常量句柄错误=(错误)=>{
// ...
}
我保证([
deleteFromTable1(参数1,事务),
删除表2(参数1,事务),
deleteFromTable3(参数1,事务)
])
.然后(HandleSuccessfulDelete)
.catch(把手错误)
}
app.post('/delete',deleteItems)
这样,所有删除调用都会在返回success
响应之前完成
或者,如果您需要按顺序拨打电话,则可以执行以下操作:
功能删除项(请求、恢复){
常量handleSuccessfulDelete=()=>{
// ...
}
常量句柄错误=(错误)=>{
// ...
}
deleteFromTable1(参数1,事务)
.然后(()=>deleteFromTable2(参数1,事务))
.然后(()=>deleteFromTable3(参数1,事务))
.然后(HandleSuccessfulDelete)
.catch(把手错误)
}
app.post('/delete',deleteItems)
这里有一个例子-我已经试过了。我的senario在表之间有一些依赖关系。所以我需要依次执行第二种方法呢?我已经编辑了我的答案