1

这是 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);

我的问题是关于连接池。我使用连接池的方式好吗?而且我也以这种方式使用其他控制器,所以我的意思是如果我需要控制器中的连接,我会调用每个控制器的连接。谢谢你的建议

4

0 回答 0