Você pode criar um módulo separado, chame-o de
mysqlLib.js
que será responsável por criar um pool e retornar as conexões:var mysql = require("mysql");
var pool = mysql.createPool(/* credentials go here */);
exports.getConnection = function(callback) {
pool.getConnection(function(err, conn) {
if(err) {
return callback(err);
}
callback(err, conn);
});
};
e em qualquer módulo/arquivo que precise de uma conexão mysql, você pode fazer isso:
var mysqlLib = require("mysqlLib");
mysqlLib.getConnection(function(err, mclient) {
//do queries that you need
});
A maneira como
require()
funciona, o código em mysqlLib.js
será executado apenas uma vez, então apenas um pool será criado mesmo se require("mysqlLib.js"}
é chamado em vários arquivos. Consulte esta seção
dos documentos do node.js para obter uma explicação sobre o cache do módulo.