我正在 Heroku 上编写一个 node.js 应用程序并使用pg module。我无法找出为我需要查询数据库的每个请求获取客户端对象的“正确”方法。
该文档使用如下代码:
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 的免费数据库实例无论如何都仅限于一个连接,但是这样做有什么缺点吗?每次使用之前,我是否需要检查我的客户端对象是否仍然连接?