我想向 knex 添加一些我必须一直使用的自定义函数,但我发现很难让它们工作。
他们是:
knex.selectOne
knex.selectZeroOrOne
selectOne 不是先执行,而是不应用限制,而是在返回多个记录时抛出错误。 这允许作者尽早发现特定错误。
我开始于:
knex.client.QueryBuilder.prototype.selectOne = function (columns) {
const args = new Array(arguments.length);
for (let i = 0; i < args.length; i++) {
args[i] = arguments[i];
}
this.select.apply(this, args);
this._method = 'first';
//this.limit(1);
return this;
}
但显然在结果返回后必须检查返回的记录数
你能指出我正确的方向吗?
仅供参考 此代码在 0.12 中不起作用,您需要直接 require knex/lib/query/builder
来修改该原型。
对于 1.0,我将计划定义一种标准方法来自定义查询构建器链,就像您在上面尝试做的那样,并且通过添加“钩子”,您将能够轻松设置后结果转换。
@tgriesser我已经等了一段时间并开始修改QueryBuilder
原型。 有一个接口来扩展查询构建器会很棒。
👍
@tgriesser - 我们离 1.0 有多远?
最有用的评论
@tgriesser我已经等了一段时间并开始修改
QueryBuilder
原型。 有一个接口来扩展查询构建器会很棒。👍