所以我目前正在使用以下内容:
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
。各种其他选项主要仅用于配置池的大小&超时。在你大幅扩展你的应用程序之前,你不应该搞砸这些。
如果您使用事务,则需要做额外的工作,因为您需要明确地将connect
和release
作为池中的客户端,以确保事务中的所有语句都在同一连接上执行。
话虽如此,你可能会有一个更高级别的客户,比如https://www.atdatabases.org(免责声明:我是@databases的作者(。这有更完整的文档,应该更容易上手@数据库总是使用连接池:
- 在@databases中管理连接池指南
- 使用@databases运行SQL查询
- @数据库中的事务
- @databases中所有连接/连接池选项的列表