返回与knex db pool的连接

时间:2018-03-15 15:01:02

标签: mysql node.js database connection-pooling knex.js

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

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

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

提前致谢

2 个答案:

答案 0 :(得分:2)

没有。没有必要这样做。

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

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

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

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

答案 1 :(得分:2)

文档中没有此类信息,但基于source code,您可以像这样访问knex个游戏

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

knex使用了tarn池,因此你可以查看它的方法。

P.S。我不知道你在哪里获得了knex版本(3分),但是这个答案时刻的当前版本是0.14.4