如何将Heroku Postgres客户端转换为池



所以我目前正在使用以下内容:

const { Client } = require('pg');
const db = new Client({
connectionString: process.env.DATABASE_URL,
ssl: {
rejectUnauthorized: false
}
});

我想开始使用池,因为它似乎可以更有效地处理多个用户访问数据库。。。我如何将上面的东西转换成游泳池?我试着把单词"Client"改为"Pool",但根据文档,池的初始化方式似乎有所不同。在这里(https://node-postgres.com/api/pool)它显示了一个配置对象的制作,我想我必须制作其中一个,但我不确定在部署到Heroku时应该在里面放什么。。。。非常感谢您的帮助!

理论上,您应该能够用Pool替换Client。各种其他选项主要仅用于配置池的大小&超时。在你大幅扩展你的应用程序之前,你不应该搞砸这些。

如果您使用事务,则需要做额外的工作,因为您需要明确地将connectrelease作为池中的客户端,以确保事务中的所有语句都在同一连接上执行。

话虽如此,你可能会有一个更高级别的客户,比如https://www.atdatabases.org(免责声明:我是@databases的作者(。这有更完整的文档,应该更容易上手@数据库总是使用连接池:

  • 在@databases中管理连接池指南
  • 使用@databases运行SQL查询
  • @数据库中的事务
  • @databases中所有连接/连接池选项的列表

相关内容

最新更新