knex.transaction()内部发生了什么

时间:2017-02-14 16:59:40

标签: node.js knex.js

我想在每个传入请求的中间件中为我的请求参数添加一个knex事务。

knex.transaction()的性能如何?它是否像打开数据库连接一样成本高昂?

提前致谢! :)

1 个答案:

答案 0 :(得分:0)

Knex交易急切地开启。因此,当您调用knex.transaction时,它会立即从池中保留数据库连接,即使您没有在那里发送任何查询。

此外,如果您正在创建隐式打开的事务,请记住确保它将被提交/回滚。否则,在处理完请求后,它们将保持活动状态并填满连接池。

因此,您可以考虑公开req.trx()中间件而不是始终打开事务,这会在您第一次调用它时懒惰地创建单例事务...