Как мне использовать node-postgres на сервере?

Я пишу веб-сервер Node.js, который использует базу данных Postgres. Я использовал для подключения при каждом новом запросе, как это:

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

Но после нескольких запросов я заметил ошибки «нехватки памяти» на Heroku при попытке подключения. В моей базе данных всего 10 строк, поэтому я не понимаю, как это могло произойти. Весь мой доступ к базе данных имеет следующую форму:

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) }));
});

Предполагая, что ошибка памяти произошла из-за наличия нескольких постоянных подключений к базе данных, я переключился на стиль, который видел в несколькихnode-postgres Примеры подключения только один раз в верхней части файла:

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

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

Но теперь мои запросы зависают (на неопределенное время?), Когда я пытаюсь выполнить запрос после разрыва соединения. (Я смоделировал это, убив сервер Postgres и вернув его обратно.)

Так как мне сделать один из них?

Правильно объединяйте соединения Postgres, чтобы я мог «переподключаться» каждый раз без нехватки памяти.Глобальный клиент автоматически переподключится после сбоя сети.

Ответы на вопрос(1)

Ваш ответ на вопрос