-
Node.js mysql连接池模块
-
-
1,安装node的mysql模块 npm -install -g node-mysql
-
2,建立一个类库,就叫mysql.js吧,然后内容如下:
-
var mysql=require("mysql");
-
var pool = mysql.createPool({
-
host: 'localhost',
-
user: 'user',
-
password: 'password',
-
database: 'database',
-
port: port, //connectionLimit:100
-
});
-
-
var query=function(sql,callback){
-
pool.getConnection(function(err,conn){
-
if(err){
-
callback(err,null,null);
-
}else{
-
conn.query(sql,function(qerr,vals,fields){
-
-
conn.release(console.log("连接结束"));
-
-
callback(qerr,vals,fields);
-
});
-
}
-
});
-
};
-
-
module.exports=query;
-
-
3,在js类使用如下
-
var query=require("./lib/mysql.js");
-
-
query("select 1 from 1",function(err,vals,fields){
-
-
});
断线重连
var mysql = require('mysql');
var conn;
function handleError () {
conn = mysql.createConnection({
host: 'localhost',
user: 'nodejs',
password: 'nodejs',
database: 'nodejs',
port: 3306
});
//连接错误,2秒重试
conn.connect(function (err) {
if (err) {
console.log('error when connecting to db:', err);
setTimeout(handleError , 2000);
}
});
conn.on('error', function (err) {
console.log('db error', err);
// 如果是连接断开,自动重新连接
if (err.code === 'PROTOCOL_CONNECTION_LOST') {
handleError();
} else {
throw err;
}
});
}
handleError();