Możesz stworzyć osobny moduł, nazwij go mysqlLib.js
który będzie odpowiedzialny za tworzenie puli i zwracanie połączeń:
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);
});
};
i w dowolnym module/pliku, który wymaga połączenia mysql, możesz to zrobić:
var mysqlLib = require("mysqlLib");
mysqlLib.getConnection(function(err, mclient) {
//do queries that you need
});
Sposób require()
działa, kod w mysqlLib.js
zostanie uruchomiony tylko raz, więc tylko jedna pula zostanie utworzona, nawet jeśli require("mysqlLib.js"}
jest wywoływana w wielu plikach. Zobacz tę sekcję
dokumentacji node.js w celu wyjaśnienia buforowania modułów.