Knex: 自定义构建器函数

创建于 2016-07-15  ·  3评论  ·  资料来源: knex/knex

我想向 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;
}

但显然在结果返回后必须检查返回的记录数

你能指出我正确的方向吗?

planned for 1.0

最有用的评论

@tgriesser我已经等了一段时间并开始修改QueryBuilder原型。 有一个接口来扩展查询构建器会很棒。

👍

所有3条评论

仅供参考 此代码在 0.12 中不起作用,您需要直接 require knex/lib/query/builder来修改该原型。

对于 1.0,我将计划定义一种标准方法来自定义查询构建器链,就像您在上面尝试做的那样,并且通过添加“钩子”,您将能够轻松设置后结果转换。

@tgriesser我已经等了一段时间并开始修改QueryBuilder原型。 有一个接口来扩展查询构建器会很棒。

👍

@tgriesser - 我们离 1.0 有多远?

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

fsebbah picture fsebbah  ·  3评论

zettam picture zettam  ·  3评论

legomind picture legomind  ·  3评论

arconus picture arconus  ·  3评论

PaulOlteanu picture PaulOlteanu  ·  3评论