多种模型的水线交易

时间:2014-11-20 16:03:10

标签: node.js sails.js waterline

我正在使用Sails waterline mysql适配器来管理My-SQL数据库,

我在抑制期间有3个模型我必须在Seire中执行查询,但如果最后一个失败,我必须做回滚。这是可能的水线和交易。

1 个答案:

答案 0 :(得分:2)

是的,您可以为此目的使用Model.query函数。它允许您执行任何本机SQL查询。例如

var myQuery  = "select * from users";
User.query(myQuery, function(err, result){
  if(err){
    // error handling here
  }
  else{
    // result handling here
  }
})

通过执行控制台日志仔细观察结果对象。

对于您的情况,您需要编写一个SQL存储过程来执行事务中的所有操作。然后您的代码变为

var myQuery = "call store_proc_name(params)";

这里的结果对象会稍微复杂一点。仔细分析。现在,使用本机查询时要小心谨慎,确保转义用户提供的参数以避免SQL注入攻击