Mysql
 sql >> Database >  >> RDS >> Mysql

Node.js MySQL richiede una connessione persistente

Usa il pool di connessioni MySQL. Si riconnetterà quando una connessione si interrompe e avrai il vantaggio aggiuntivo di poter eseguire più query sql contemporaneamente. Se non utilizzi il pool di database, la tua app bloccherà le richieste di database in attesa del completamento delle richieste di database attualmente in esecuzione.

Di solito definisco un modulo di database in cui tengo le mie query separate dai miei percorsi. Sembra qualcosa del genere...

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);
    });
  });
});