Vous pouvez créer un module séparé, appelez-le mysqlLib.js
qui sera responsable de la création d'un pool et du retour des connexions :
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);
});
};
et dans n'importe quel module/fichier qui a besoin d'une connexion mysql, vous pouvez faire ceci :
var mysqlLib = require("mysqlLib");
mysqlLib.getConnection(function(err, mclient) {
//do queries that you need
});
La façon dont require()
fonctionne, le code dans mysqlLib.js
ne sera exécuté qu'une seule fois donc un seul pool sera créé même si require("mysqlLib.js"}
est appelé dans plusieurs fichiers. Voir cette section
de la documentation node.js pour une explication de la mise en cache des modules.