这是 mysql.js 文件
var mysql = require('mysql');
var pool = mysql.createPool({
connectionLimit: 100,
connectTimeout: 5000,
acquireTimeout: 5000,
queueLimit: 30,
host: 'localhost',
user: '',
password: '',
database: '',
multipleStatements: true,
});
var getConnection = function(callback) {
pool.getConnection(function(err, connection) {
if (err) return callback(err);
callback(err, connection);
});
};
pool.on('acquire', function(connection) {
console.log('Connection %d acquired', connection.threadId);
});
module.exports = getConnection;
这是我的路由控制器之一
var getConnection = require('../config/mysql');
//get / or /homepage
exports.getIndex = function(req, res) {
getConnection(function(err, con) {
que = 'SELECT SOMETHING FROM SOMEWHERE';
con.query(que, function(err, result) {
if (err) throw err;
//console.log(JSON.stringify(result));
//console.log(result[0]);
con.release();
res.render('page/home', { result:result});
});
})
}
我像这样在我的 routes.js 文件中使用控制器
var controller = require('../controllers/indexController');
router.get('/', controller.getIndex);
我的问题是关于连接池。我使用连接池的方式好吗?而且我也以这种方式使用其他控制器,所以我的意思是如果我需要控制器中的连接,我会调用每个控制器的连接。谢谢你的建议