[mysql]beginTransaction/rollback/commit 悠悠 2022-05-30 00:22 119阅读 0赞 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(); } });
还没有评论,来说两句吧...