坦白说sails-mysql对事务的支持差强人意,用mysql模块自带的方法会更简单一点(也许是我打开的方式不对)。
以下是源码,你能看懂就行
var mysql = require('mysql');
//创建连接
var connection = mysql.createConnection(this.sails.config.connections.myApp);
connection.connect(function(err) {
if(err){ return next(err); }
});
//外面也可以嵌套for循环
connection.beginTransaction(function(err) {
//可以嵌套多层,看你心情
connection.query(sql1, function(err, result) {
if(err){
//回滚事务
connection.rollback(function() { if(err){ return next(err); } });
}
connection.query(sql2, function(err, result) {
if(err){
connection.rollback(function() { if(err){ return next(err); } });
}
//提交事务
connection.commit(function(err) {
if(err){
connection.rollback(function() { if(err){ return next(err); } });
}
//关闭连接
connection.end();
});
});
});
});
2017年9月20日 重庆-传说