Estoy escribiendo una aplicación node.js en Heroku y usando el módulo pg . No puedo encontrar la forma "correcta" de obtener un objeto de cliente para cada solicitud que necesito para consultar la base de datos.
La documentación usa un código como este:
pg.connect(conString, function(err, client) {
// Use the client to do things here
});
Pero seguramente no necesita llamar pg.connect
dentro de cada función que usa la base de datos, ¿verdad? He visto otro código que hace esto:
var conString = process.env.DATABASE_URL || "tcp://postgres:1234@localhost/postgres";
var client = new pg.Client(conString);
client.connect();
// client is a global so you can use it anywhere now
Me estoy inclinando hacia la segunda opción porque creo que la instancia de base de datos gratuita para Heroku está limitada a una conexión de todos modos, pero ¿hay algún inconveniente en hacerlo de esta manera? ¿Debo comprobar si mi objeto cliente todavía está conectado cada vez antes de usarlo?