我正在 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 的免费数据库实例只限于一个连接,但是这样做有什么缺点吗?在使用客户端对象之前,是否每次都需要检查它是否仍然连接?