Estou escrevendo um aplicativo node.js no Heroku e usando o módulo pg . Não consigo descobrir a maneira "certa" de obter um objeto cliente para cada solicitação de consulta ao banco de dados.
A documentação usa código como este:
pg.connect(conString, function(err, client) {
// Use the client to do things here
});
Mas certamente você não precisa chamar pg.connect
dentro de todas as funções que usam o banco de dados, certo? Eu vi outro código que faz isso:
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
Estou inclinado para a segunda opção, pois acredito que a instância de banco de dados gratuita para Heroku é limitada a uma conexão de qualquer maneira, mas há alguma desvantagem em fazer isso dessa maneira? Preciso verificar se meu objeto cliente ainda está conectado antes de usá-lo?