Knex: Fonctions de création personnalisées

Créé le 15 juil. 2016  ·  3Commentaires  ·  Source: knex/knex

J'aimerais ajouter des fonctions personnalisées à knex que je dois utiliser tout le temps, mais j'ai du mal à les faire fonctionner.

Elles sont:
knex.selectOne
knex.selectZeroOrOne

Au lieu de faire d'abord, selectOne n'applique pas de limite et renvoie une erreur s'il récupère plus d'un enregistrement. Cela permet à l'auteur de détecter des erreurs particulières notamment tôt.

J'ai commencé par :

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;
}

mais évidemment, la vérification du nombre d'enregistrements renvoyés doit avoir lieu après le retour des résultats

Pourriez-vous m'orienter dans la bonne direction ?

planned for 1.0

Commentaire le plus utile

@tgriesser J'attends cette fonctionnalité depuis un moment et je commence à modifier le prototype QueryBuilder . Ce sera tellement génial d'avoir une interface pour étendre le générateur de requêtes.

??

Tous les 3 commentaires

Juste pour info Ce code ne fonctionnera pas en 0.12, vous aurez besoin de knex/lib/query/builder directement pour modifier ce prototype.

Pour la version 1.0, je prévois de définir un moyen standard de personnaliser la chaîne de création de requêtes comme vous essayez de le faire ci-dessus, et avec l'ajout de "hooks", vous pourrez facilement configurer les transformations post-résultats.

@tgriesser J'attends cette fonctionnalité depuis un moment et je commence à modifier le prototype QueryBuilder . Ce sera tellement génial d'avoir une interface pour étendre le générateur de requêtes.

??

@tgriesser - À quelle distance sommes-nous de 1.0 ?

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

hyperh picture hyperh  ·  3Commentaires

PaulOlteanu picture PaulOlteanu  ·  3Commentaires

marianomerlo picture marianomerlo  ·  3Commentaires

zettam picture zettam  ·  3Commentaires

mattgrande picture mattgrande  ·  3Commentaires