2.Express封装mysq方法

1.mysql操作方法封装

var mysqlconf = {host:conf.server,port:conf.port,database:conf.database,charset:conf.charset,user:conf.uid,password:conf.password,connectionLimit:20};//mysql连接池配置
var myPool = require('mysql').createPool(mysqlconf);//建立连接

//单个查询
function mysqlOperate(sql,callback){
    myPool.getConnection(function(err,con){
        if(err){
            console.log('mysqlDBOperate------getConnection--1--,err:'+err);
            callback(err,con);
        }else{
            con.query(sql,function(err,rows){
                if(err) console.log('mysqlDBOperate---- update db returned,err:'+err+',sql:'+sql);
                callback(err,rows);
                //con.end();
                con.release();
            });
        }
    });
}

//事物查询
function mysqlTransact(sqls,callback){
    var con = require('mysql').createConnection({host:conf.server,port:conf.port,database:conf.database,charset:conf.charset,user:conf.uid,password:conf.password});
    con.connect(function(err){
        if(err){
            console.log('mysqlTransact------getConnection--1--,err:'+err);
            callback(err);
        }else{
            var index = 0;
            con.beginTransaction(function(err){
                if(err){
                    con.end();
                    callback(err);
                }else{
                    trans(sqls,0,function(err){
                        console.log('trans complete,err:'+err);
                        con.end();
                        callback(err);
                    });
                }
                
                function trans(transql,index,callback){
                    if(index >= transql.length){
                        con.commit(function(err){
                            if(err) con.rollback();
                            callback(err);
                        });
                    }else{
                        con.query(transql[index],function(err,rows){
                            if(err){
                                con.rollback();
                                callback(err,rows);
                            }else{
                                index++;
                                trans(transql,index,callback);
                            }
                        });
                    }
                }
                
            });
        }
    });
}

//mysql连接函数封装
function mysqlTransCon(callback){
    var con = require('mysql').createConnection(MYSQCONF);
    con.connect(function(err){
        if(err){
            console.log('mysqlTransCon------getConnection--1--,err:'+err);
            callback(err);
        }else{
            con.beginTransaction(function(err){
                if(err){
                    con.end();
                    callback(err);
                }else{
                    callback(null,con);
                }
            });
        }
    });
}

 

posted @ 2018-04-07 23:51  想~(●—●)肥~  阅读(492)  评论(0编辑  收藏  举报