返回与knex db pool的连接

问题描述 投票:1回答:2

我在我的节点应用程序中使用knex版本3.10.10,连接到MySQL DB。我在应用程序中的knex配置是使用池选项配置。

1)在我触发查询后是否需要EXPLICITLY返回到池的连接?如果是 - 如何

2)在触发查询之前,是否需要对池的连接进行明确的检查?

提前致谢

mysql node.js database connection-pooling knex.js
2个回答
2
投票

不,没有必要这样做。

Knex为您处理连接池。如果需要,可以在连接设置中使用pool: { min: 0, max: 7 }设置调整池大小,文档还包括指向Knex用于池处理的库的链接,如果您关心血腥细节。

knex文档在这里有一些信息:link

Knex将在查询或事务期间使用每个连接,然后将其释放回池中。

但是,如果您实现事务(即多个SQL语句要作为一个单元保存或取消)而不使用Promise,那么您将需要显式提交/回滚事务以正确完成事务,这也将释放连接回到交易完成后的池。 (有关Knex交易的更多信息,请访问:here)。


2
投票

文档中没有这样的信息,但基于source code你可以像这样访问knex

const knex = require('knex')(config);
const pool = knex.client.pool;
console.log(pool);

knex在引擎盖下使用tarn池,所以你可以在那里查看它的方法。

附:我不知道你在哪里得到knex版本(3分的东西),但在这个答案时刻它的当前版本是0.14.4

© www.soinside.com 2019 - 2024. All rights reserved.