MST

星途 面试题库

面试题:Node.js 中如何配置基本的数据库连接池

请描述在 Node.js 项目中,使用常见的数据库(如 MySQL 或 PostgreSQL)时,配置数据库连接池的基本步骤和关键参数有哪些,并给出简单的代码示例。
20.3万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试

配置数据库连接池的基本步骤

  1. 安装数据库驱动:根据使用的数据库(如 MySQL 或 PostgreSQL),安装相应的 Node.js 驱动。对于 MySQL 可以使用 mysql2,对于 PostgreSQL 可以使用 pg
  2. 引入驱动模块:在项目文件中引入安装好的数据库驱动模块。
  3. 配置连接池参数:设置连接池的关键参数,如数据库主机、端口、用户名、密码、数据库名等,同时配置连接池的大小(最大连接数、最小连接数等)。
  4. 创建连接池:使用数据库驱动提供的方法,基于配置的参数创建连接池实例。

关键参数

  1. 主机(host):数据库服务器的地址,通常是 IP 地址或域名。
  2. 端口(port):数据库服务监听的端口,MySQL 默认 3306,PostgreSQL 默认 5432。
  3. 用户名(user):用于连接数据库的用户名。
  4. 密码(password):对应的用户密码。
  5. 数据库名(database):要连接的具体数据库名称。
  6. 最大连接数(max):连接池中允许的最大连接数,避免过多连接耗尽系统资源。
  7. 最小连接数(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();
});