Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Node.js MySQL precisando de conexão persistente


Use o pool de conexão mysql. Ele se reconectará quando uma conexão for interrompida e você obterá o benefício adicional de poder fazer várias consultas sql ao mesmo tempo. Se você não usar o pool de banco de dados, seu aplicativo bloqueará as solicitações de banco de dados enquanto aguarda a conclusão das solicitações de banco de dados em execução no momento.

Eu costumo definir um módulo de banco de dados onde mantenho minhas consultas separadas das minhas rotas. Parece algo assim...
var mysql = require('mysql');
var pool  = mysql.createPool({
  host     : 'example.org',
  user     : 'bob',
  password : 'secret'
});

exports.getUsers = function(callback) {
  pool.getConnection(function(err, connection) {
    if(err) { 
      console.log(err); 
      callback(true); 
      return; 
    }
    var sql = "SELECT id,name FROM users";
    connection.query(sql, [], function(err, results) {
      connection.release(); // always put connection back in pool after last query
      if(err) { 
        console.log(err); 
        callback(true); 
        return; 
      }
      callback(false, results);
    });
  });
});