Como eu uso node-postgres em um servidor?

Estou escrevendo um servidor da web Node.js que usa um banco de dados Postgres. Eu costumava me conectar em cada nova solicitação assim:

app.get('/', function (req, res) {
  pg.connect(pgconnstring, function (err, client) {
    // ...
  });
});

Mas depois de alguns pedidos, notei erros de 'falta de memória' no Heroku ao tentar se conectar. Meu banco de dados tem apenas 10 linhas, então não vejo como isso poderia estar acontecendo. Todo o meu acesso ao banco de dados é desta forma:

client.query('SELECT * FROM table', function (err, result) {
  if (err) {
    res.send(500, 'database error');
    return;
  }

  res.set('Content-Type', 'application/json');
  res.send(JSON.stringify({ data: result.rows.map(makeJSON) }));
});

Supondo que o erro de memória foi devido a ter várias conexões persistentes com o banco de dados, mudei para um estilo que vi em váriosnode-postgres exemplos de conexão apenas uma vez na parte superior do arquivo:

var client = new pg.Client(pgconnstring);
client.connect();

app.get('/', function (req, res) {
  // ...
});

Mas agora meus pedidos estão suspensos (indefinidamente?) Quando tento executar uma consulta depois que a conexão é interrompida. (Eu simulei isso matando um servidor Postgres e trazendo de volta.)

Então, como faço um desses?

Agrupe adequadamente as conexões Postgres para que eu possa "reconectar" todas as vezes sem ficar sem memória.Faça com que o cliente global se reconecte automaticamente após uma falha de rede.

questionAnswers(1)

yourAnswerToTheQuestion