/***
* 数据库连接配置信息*/
var pool =mysql.createPool({
host: conn.mysql.houstName,
user: conn.mysql.userName,
password: conn.mysql.userPassword,
database: conn.mysql.dbName,
port: conn.mysql.hostPort
});/**
* mysql数据连接池
* @param sql
* @param callback*/
var query = function(sql,param,callback){if(param ===undefined){
pool.getConnection(function(err,conn){if(err){
callback(err,null,null);
}else{
conn.query(sql,function(qerr,vals,fields){//释放连接
conn.release();//事件驱动回调
callback(qerr,vals,fields);
});
}
});
}else{
pool.getConnection(function(err,conn){if(err){
callback(err,null,null);
}else{
conn.query(sql,param,function(qerr,vals,fields){//释放连接
conn.release();//事件驱动回调
callback(qerr,vals,fields);
});
}
});
}
pool.on('error',handleError);
};/**
* 连接异常退出 打开新的连接
* @param err*/
functionhandleError (err) {
console.log('数据访问异常退出...正在尝试重新建立连接');if(err) {//如果是连接断开,自动重新连接
if (err.code === 'PROTOCOL_CONNECTION_LOST') {
connect();
console.log('尝试重新打开连接...');
}else{
console.error(err.stack||err);
console.log('尝试重新建立连接失败!请检查数据访问,文件位置:'+__dirname);
console.log(err);
}
}
}/**
* 数据操作
* @param callBack*/mysqlHander.query= function(callBack) {
query(mysqlHander.sql,mysqlHander.param,function(err,rows,filed) {if(err) console.log(err);
callBack(err,rows,filed);
});
}