Ce code a deux problèmes en même temps :
- utilisation de promesse non valide, lorsqu'elle se trouve dans
.catch
vous faitesreturn 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.