nodejs事務使用總結

粗暴使用

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();
            });
        });
    });
});
相關文章
相關標籤/搜索