Puoi creare un modulo separato, chiamalo mysqlLib.js
che sarà responsabile della creazione di un pool e della restituzione delle connessioni:
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 in qualsiasi modulo/file che necessita di una connessione mysql, puoi farlo:
var mysqlLib = require("mysqlLib");
mysqlLib.getConnection(function(err, mclient) {
//do queries that you need
});
Il modo in cui require()
funziona, il codice in mysqlLib.js
verrà eseguito solo una volta, quindi verrà creato un solo pool anche se require("mysqlLib.js"}
viene chiamato in più file. Vedi questa sezione
dei documenti node.js per una spiegazione della memorizzazione nella cache dei moduli.