sql.executeSqlTrans=function(sqlArray,callbackAll){
var tasks=[];
var first= function(callback){
// 开启事务
db.beginTransaction(function(err) {
callback(err);
});
}
tasks.push(first);
sqlArray.forEach(function(sqlQuery){
var temp=function(callback){
db.query(sqlQuery,function (err, info1) {
callback(err);
});
}
tasks.push(temp);
});
var last=function(callback){
db.commit(function(err){
callback(err);
});
}
tasks.push(last);
async.series(tasks,function(err,result) {
if(err) {
db.rollback();
callbackAll(err,result);
}
else {
callbackAll(err,result);
}
});
}
module.exports = sql;
//使用,其中tasks是构成事务的一系列sql;
sql.executeSqlTrans(tasks,function(err,result){
if (err) {
res.send({result:false,reason:'写数据库失败!'});
res.end();
}else {
res.send({result:true});
res.end();
}
});