PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Retour en pg-promesse

Ce code a deux problèmes en même temps :

  • utilisation de promesse non valide, lorsqu'elle se trouve dans .catch vous faites return result , ce n'est pas ainsi que les promesses rejetées sont gérées, vous devez soit fournir la gestion des erreurs, soit relancer/rejeter l'erreur.
  • utilisation invalide de pg-promise bibliothèque. Vous utilisez la méthode one qui est censé rejeter quand autre chose qu'un enregistrement est renvoyé, selon la documentation de la méthode , et en même temps vous dites I need to catch if it returns more than one row... , ce qui est une contradiction logique.

Le résultat est le suivant :votre requête s'exécute avec succès et renvoie plusieurs enregistrements, ce qui rend la méthode un rejeter, puis vous prenez le motif du rejet et le transformez en un motif résolu en faisant return result . Dans l'ensemble, votre code est cassé partout.

Tout d'abord, avec pg-promise vous êtes censé utiliser la bonne méthode, selon le nombre d'enregistrements que vous attendez, voir Les bases .

Et ensuite gérer .then/.catch selon votre logique métier. Je ne peux pas être plus précis ici, car vous n'avez pas fourni plus de détails à ce sujet.