Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment utiliser la ou les mêmes connexions MySQL pour l'ensemble de mon application Node.js ?

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.