node.js - 在 sequelize 和 pg 之间共享一个数据库连接池

标签 node.js postgresql sequelize.js

我有一个使用 Express 和 node-postgres 编写的服务器(页)。它创建自己的数据库池:

const dbPool = new pg.Pool(dbConfig);

并使用此连接直接运行 SQL 查询。

现在我要添加一个新表和相应的 REST API。我想用 sequelizeepilogue以减少样板。不幸的是,sequelize 想创建自己的数据库连接池:
const sequelize = new Sequelize(database, user, password, config);

是否可以重用现有的连接池或以其他方式在我现有的 pg 之间共享它?代码和我的新 sequelize代码?

最佳答案

Sequelize 不提供传递自定义池的选项,但您可以传递用于创建 sequelize 池的选项,例如最小和最大连接数。
在您的情况下,我会做的是检查您的数据库连接总数,并根据您的两个池的预期使用情况进行重新分区。
例如,如果您的数据库最多有 20 个连接:

const dbPool = new pg.Pool({
  max: 10
});

const sequelize = new Sequelize(/* ... */, {
  // ...
  pool: {
    max: 10,
    min: 0,
    acquire: 30000,
    idle: 10000
  }
});
我还建议使用环境变量来设置 sequelize 池和 nod-pg 池上的最大连接,以便您可以在需要时轻松调整重新分区。

关于node.js - 在 sequelize 和 pg 之间共享一个数据库连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39457757/

相关文章:

javascript - sequelize 验证多列 [this.column got undefined]

sql - 使用 Through 序列化多对多关系不会插入附加属性

node.js - 如 YouTube API Node.js 快速入门中所述,没有选择 "Other"的选项

node.js - 我的网站静态文件未提供服务(Amazon AWS 上的 Node 应用程序)

node.js - 在cloud9ide中上传图片?

node.js - 尝试将 Microsoft QnA maker 服务与 Bot Framework 连接,但未收到我的机器人的任何回复

postgresql - 如何将多个行值展平为 postgres 中的连接字符串?

postgresql - 如何在 PostgreSQL 触发器函数中获取表名?

postgresql - 按日期的动态表名称

node.js - TS2345 Sequelize 创建功能