¿Cómo uso node-postgres en un servidor?

Estoy escribiendo un servidor web Node.js que utiliza una base de datos de Postgres. Solía ​​conectarme en cada nueva solicitud de esta manera:

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

Pero después de algunas solicitudes, noté errores de "falta de memoria" en Heroku al intentar conectar. Mi base de datos solo tiene 10 filas, por lo que no veo cómo podría estar sucediendo esto. Todo mi acceso a la base de datos es de esta 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) }));
});

Suponiendo que el error de memoria se debió a tener varias conexiones persistentes a la base de datos, cambié a un estilo que vi en variosnode-postgres Ejemplos de conexión solo una vez en la parte superior del archivo:

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

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

Pero ahora mis solicitudes se cuelgan (¿de forma indefinida?) Cuando intento ejecutar una consulta después de que se interrumpe la conexión. (Lo simulé matando un servidor de Postgres y volviendo a ponerlo en marcha).

Entonces, ¿cómo hago uno de estos?

Agrupe correctamente las conexiones de Postgres para que pueda 'reconectarme' cada vez que me quede sin memoria.Haga que el cliente global vuelva a conectarse automáticamente después de una falla de la red.

Respuestas a la pregunta(1)

Su respuesta a la pregunta