Nodejs 数据库连接池generic-pool
generic-pool数据库连接池支持mysql、mongodb、redis等数据库
安装generic-pool模块
npm install generic-poll —save
创建mysql数据库的连接池:
// 通用数据库连接池,支持众多数据库 var generic = require('generic-pool');
// 导入mysq模块,创建数据库连接需要 var mysql = require('mysql');
// 创建mysql连接池 var mysqlPool = generic.Pool({ 'name': 'mysql-pool', // 连接池名称 'max': 100, // 最大连接数 'min': 5, // 最小连接数 'idleTimeoutMillis ': 30 * 1000,// 空闲等待时间 'log': false, // 是否console.log输出日志 // 创建连接方法 'create': function (callback) { console.log('pool.mysql.create--->') var conn = mysql.createConnection({ 'host': '127.0.0.1', 'port': 3306, 'user': 'root', 'password': 'mysqladmin', 'database': 'ajax', 'connectTimeout': 1 // 'charset':'utf-8', }); conn.connect(); // 回调,第一个参数为错误对象,第二个为连接 callback(null, conn); }, // 销毁方法 'destroy': function (conn) { console.log('pool.mysql.destroy--->') conn.end(); } });
这样mysql数据库连接池就创建好了
// 使用mysql连接池 // 使用acquire方法取得池中连接 // 回调中第一个参数错误对象,第二个为连接对象 mysqlPool.acquire(function (err, conn) {
if (err) {
return console.log('连接出错:' + err)
}
var sql = "SELECT * FROM area LIMIT 5";
conn.query(sql, function (err, rows, fileds) {
if (err) {
return console.log('查询出错:' + err)
}
console.log('mysql查询:')
console.log(rows) // 释放连接,使用连接池对象的release方法传入连接对象即可
mysqlPool.release(conn);
}) })
还没有评论,来说两句吧...