如果删除`finally()`函数之后,生产环境就没有问题了,那么很可能是因为在生产环境中,数据库连接池的最大连接数被限制了,而`finally()`函数释放连接时导致了连接池耗尽的问题。
解决方法可以考虑以下两种:
1. 增加数据库连接池的最大连接数。可以通过修改数据库连接池的配置文件来增加最大连接数,以满足生产环境的需求。
2. 不使用`finally()`函数手动释放连接。可以使用Knex.js提供的自动释放连接的功能,即在每次操作完成后自动释放连接。例如:
```javascript
return knex.transaction((trx) => {
return trx.insert(params).into(this.table);
});
```
以上代码中,我们使用了Knex.js提供的事务机制,将插入操作包裹在一个事务中。在事务结束后,Knex.js会自动释放连接,从而避免了手动释放连接的问题。