PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Zurück in pg-Promise

Dieser Code hat zwei Probleme gleichzeitig:

  • ungültige Promise-Verwendung, wenn innerhalb von .catch Sie tun return result , so werden Promise-Ablehnungen nicht gehandhabt, Sie müssen entweder die Fehlerbehandlung bereitstellen oder den Fehler erneut ausgeben/zurückweisen.
  • ungültige Verwendung von pg-promise Bibliothek. Sie verwenden die Methode one das soll ablehnen, wenn etwas anderes als 1 Datensatz zurückgegeben wird, wie pro die Dokumentation der Methode , und gleichzeitig sagen Sie I need to catch if it returns more than one row... , was ein logischer Widerspruch ist.

Das Ergebnis davon ist wie folgt:Ihre Abfrage wird erfolgreich ausgeführt und gibt mehr als einen Datensatz zurück, was wiederum die Methode eins ablehnen, und dann nehmen Sie den Ablehnungsgrund und wandeln ihn in einen gelösten um, indem Sie return result ausführen . Alles in allem ist Ihr Code überall gebrochen.

Zuerst mit pg-promise Sie sollten die richtige Methode verwenden, je nachdem, wie viele Datensätze Sie zurückerwarten, siehe Die Grundlagen .

Und handhaben Sie dann .then/.catch nach Ihrer Geschäftslogik. Ich kann hier nicht genauer werden, weil Sie dazu keine weiteren Details angegeben haben.