PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Ritorno in pg-promessa

Quel codice ha due problemi contemporaneamente:

  • uso della promessa non valido, se all'interno di .catch return result , non è così che vengono gestiti i rifiuti delle promesse, devi fornire la gestione degli errori o lanciare nuovamente/rifiutare l'errore.
  • uso non valido di pg-promise biblioteca. Utilizzi il metodo one che dovrebbe rifiutare quando viene restituito qualcosa di diverso da 1 record, come da la documentazione del metodo , e allo stesso tempo stai dicendo I need to catch if it returns more than one row... , che è una contraddizione logica.

Il risultato è il seguente:la tua query viene eseguita correttamente e restituisce più di un record, il che a sua volta rende il metodo uno rifiuta, quindi prendi il motivo del rifiuto e lo trasformi in uno risolto eseguendo return result . In tutto, il tuo codice è rotto ovunque.

Innanzitutto, con pg-promise dovresti usare il metodo giusto, in base al numero di record che ti aspetti indietro, vedi Nozioni di base .

E poi gestisci .then/.catch secondo la tua logica aziendale. Non posso essere più specifico qui, perché non hai fornito ulteriori dettagli in merito.