Después de algunas pruebas y errores, estoy usando la opción 2 y está funcionando bien. Creó la conexión globalmente y la usó en el clúster.
Cada vez que necesite realizar una consulta, obtenga Conexión.
pool.getConnection(function(err, connection) {
if(err) {
console.log('Error getting sql connection');
console.dir(err);
if(typeof connection !== "undefined")
connection.release();
callback(err);
}
if(typeof cb === "undefined") {
//console.log('with 2 params');
connection.query( sql, function(err, rows) {
connection.release();
console.dir(sql);
// console.dir('data=>' + data);
if(err) {
console.log('err:' + err);
callback(err, rows);
}else{
console.log( rows );
callback(err, rows);
}
});
} else {
// console.log('with 3 params:' + cb);
connection.query( sql, data, function(err, rows){
connection.release();
console.log(sql);
console.dir(data);
if(err) {
console.log('err:' + err);
callback(err, rows);
}else{
console.log( rows );
callback(err, rows);
}
});
}
});
}