Herokuでnode.jsアプリを作成し、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の無料のデータベースインスタンスはいずれにしても1つの接続に制限されていると思うので、私は2番目のオプションに傾いていますが、この方法を使用することには欠点がありますか?クライアントオブジェクトを使用する前に、毎回クライアントオブジェクトがまだ接続されているかどうかを確認する必要がありますか?