配置数据库连接池的基本步骤
- 安装数据库驱动:根据使用的数据库(如 MySQL 或 PostgreSQL),安装相应的 Node.js 驱动。对于 MySQL 可以使用
mysql2
,对于 PostgreSQL 可以使用 pg
。
- 引入驱动模块:在项目文件中引入安装好的数据库驱动模块。
- 配置连接池参数:设置连接池的关键参数,如数据库主机、端口、用户名、密码、数据库名等,同时配置连接池的大小(最大连接数、最小连接数等)。
- 创建连接池:使用数据库驱动提供的方法,基于配置的参数创建连接池实例。
关键参数
- 主机(host):数据库服务器的地址,通常是 IP 地址或域名。
- 端口(port):数据库服务监听的端口,MySQL 默认 3306,PostgreSQL 默认 5432。
- 用户名(user):用于连接数据库的用户名。
- 密码(password):对应的用户密码。
- 数据库名(database):要连接的具体数据库名称。
- 最大连接数(max):连接池中允许的最大连接数,避免过多连接耗尽系统资源。
- 最小连接数(min):连接池中保持的最小连接数,确保一定的响应速度。
代码示例
MySQL 连接池示例(使用 mysql2)
const mysql = require('mysql2');
// 创建连接池
const pool = mysql.createPool({
host: 'localhost',
port: 3306,
user: 'root',
password: 'password',
database: 'test_db',
// 最大连接数
max: 10,
// 最小连接数
min: 2,
// 连接超时时间
idleTimeout: 1000 * 60 * 60,
// 队列中等待连接的最大数量
queueLimit: 0
});
// 获取连接
pool.getConnection((err, connection) => {
if (err) {
console.error('获取连接失败', err);
return;
}
connection.query('SELECT 1 + 1 AS solution', (error, results, fields) => {
// 释放连接
connection.release();
if (error) {
console.error('执行查询失败', error);
return;
}
console.log('查询结果: ', results);
});
});
PostgreSQL 连接池示例(使用 pg)
const { Pool } = require('pg');
// 创建连接池
const pool = new Pool({
user: 'user',
host: 'localhost',
database: 'test_db',
password: 'password',
port: 5432,
max: 10,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000
});
// 执行查询
pool.query('SELECT 1 + 1 AS solution', (error, results) => {
if (error) {
console.error('执行查询失败', error);
return;
}
console.log('查询结果: ', results.rows);
// 关闭连接池(通常在应用程序结束时)
pool.end();
});