いつも使用しなければならないカスタム関数を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では機能しません。そのプロトタイプを変更するには、 knex/lib/query/builder
直接要求する必要があります。
1.0の場合、上記で実行しようとしているようにクエリビルダーチェーンをカスタマイズする標準的な方法を定義する予定です。「フック」を追加すると、結果後の変換を簡単に設定できるようになります。
@tgriesserこの機能をしばらく待って、 QueryBuilder
プロトタイプの変更を開始しました。 クエリビルダーを拡張するためのインターフェイスがあると非常に便利です。
👍
@ tgriesser -1.0からどれくらい離れていますか?
最も参考になるコメント
@tgriesserこの機能をしばらく待って、
QueryBuilder
プロトタイプの変更を開始しました。 クエリビルダーを拡張するためのインターフェイスがあると非常に便利です。👍