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では機能しません。そのプロトタイプを変更するには、 knex/lib/query/builder直接要求する必要があります。

1.0の場合、上記で実行しようとしているようにクエリビルダーチェーンをカスタマイズする標準的な方法を定義する予定です。「フック」を追加すると、結果後の変換を簡単に設定できるようになります。

@tgriesserこの機能をしばらく待って、 QueryBuilderプロトタイプの変更を開始しました。 クエリビルダーを拡張するためのインターフェイスがあると非常に便利です。

👍

@ tgriesser -1.0からどれくらい離れていますか?

このページは役に立ちましたか?
0 / 5 - 0 評価