如何在Knex中扩展QueryBuilder类时访问当前上下文的事务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Knex中扩展QueryBuilder类时访问当前上下文的事务相关的知识,希望对你有一定的参考价值。
我试图扩展Knex.js的QueryBuilder
。我想修改delete()
方法以删除我的Objection.js模型的子元素。当前代码运行良好,但我想支持新方法中的事务:
class CustomQueryBuilder extends QueryBuilder {
// Override delete method
delete() {
return super.select('*').first().runAfter(async (old, builder) => {
// Some extra logic here, being able to access old entry
return await old.query().nativeDelete() // original delete
})
}
nativeDelete() {
return super.delete()
}
}
当前背景的交易在哪里?它可以访问吗?
注意:我不能将它作为delete(trx)
函数中的参数传递,因为可以从其他方法调用delete()
而不将其明确地作为参数传递
答案
可以通过qazxsw poi访问查询生成器的当前事务:
builder.context()
以上是关于如何在Knex中扩展QueryBuilder类时访问当前上下文的事务的主要内容,如果未能解决你的问题,请参考以下文章
Knex:如何在 knex 中的有子句中编写 ARRAY_AGG?