Я пишу додаток node.js на Heroku і використовую модуль pg . Я не можу зрозуміти "правильний" спосіб отримати клієнтський об'єкт для кожного запиту, який мені потрібен для запиту до бази даних.
Документація використовує такий код:
pg.connect(conString, function(err, client) {
// Use the client to do things here
});
Але, звичайно, вам не потрібно викликати pg.connect
всередині кожної функції, яка використовує базу даних, чи не так? Я бачив інший код, який робить це:
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
Я схиляюся до другого варіанту, оскільки я вважаю, що безкоштовний екземпляр бази даних для Heroku в будь-якому випадку обмежений одним підключенням, але чи є якісь недоліки, щоб зробити це таким чином? Чи потрібно щоразу перевіряти, чи об'єкт мого клієнта підключений, перш ніж я його використовую?