1. 在Node.js中通过模块化管理数据库连接池代码的步骤
- 创建连接池模块:
- 使用如
mysql2
或pg
等数据库操作库。以mysql2
为例,先安装npm install mysql2
。
- 创建一个
db.js
文件用于管理连接池。
const mysql = require('mysql2');
// 创建连接池
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'password',
database: 'your_database',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
});
// 将连接池导出
module.exports = pool.promise();
- 在路由模块中复用:
- 假设我们有一个
userRoutes.js
路由模块,需要使用数据库连接池。
const express = require('express');
const router = express.Router();
const pool = require('./db');
// 获取所有用户
router.get('/users', async (req, res) => {
try {
const [rows] = await pool.query('SELECT * FROM users');
res.json(rows);
} catch (error) {
console.error(error);
res.status(500).send('Error fetching users');
}
});
module.exports = router;
2. 模块化在该场景中的优势体现
- 代码复用:不同的路由模块(如
userRoutes.js
、productRoutes.js
等)都可以引入db.js
模块中创建的连接池,避免了在每个路由模块中重复编写连接池创建代码,提高了代码的复用性。
- 易于维护:如果连接池的配置(如数据库主机、用户名、密码等)需要修改,只需要在
db.js
一个地方修改即可,而不用在每个使用到数据库连接的路由模块中修改,降低了维护成本。
- 清晰的代码结构:将数据库连接池相关代码封装在独立模块中,使得路由模块专注于处理业务逻辑,代码结构更加清晰,便于理解和开发。