NodeJS 在不同的模块里创建数据库连接,是各自创建一个连接吗?怎么共用同一个连接?
NodeJS 在不同的模块里创建数据库连接,是各自创建一个连接吗?怎么共用同一个连接?
database.js 数据库共用模块
const mysql = require('mysql');
let config = {...}
function connect (conf = config) {
let conn = mysql.createConnection(conf);
conn.connect(function (err) {
if (err) {
console.log(err);
} else {
console.log('Connected to database.')
return conn;
}
});
}
module.exports = {
connect: connect
}
module1.js module2.js 假如都是这样
const mysql = require('./database');
mysql.connect();
是不是创建了两个 MySQL 连接,如果过一段时间不用数据库操作,是不是会有断开的情况。
怎样才能共用一个连接,一方面可以减少数据库的连接数,另一方面断开连接的时候重新连接的逻辑可以共用。 难道把它放到全局变量?
3 回复
module.exports = {
connPool: mysql.createPool(config)
}
require(’./database’). getConnection((err, conn) => conn.release())
单例模式