Ese código tiene dos problemas al mismo tiempo:
- uso de promesa no válido, cuando está dentro de
.catch
hacesreturn result
, no es así como se manejan los rechazos de promesas, debe proporcionar el manejo de errores o volver a generar/rechazar el error. - uso no válido de pg-promise
biblioteca. Usas el método one
se supone que se debe rechazar cuando se devuelve algo que no sea 1 registro, según la documentación del método
, y al mismo tiempo dices
I need to catch if it returns more than one row...
, lo cual es una contradicción lógica.
El resultado es el siguiente:su consulta se ejecuta con éxito y devuelve más de un registro, lo que a su vez hace que el método uno
rechazar, y luego toma el motivo del rechazo y lo convierte en uno resuelto haciendo return result
. En total, su código está roto por todas partes.
Primero, con pg-promise se supone que debe usar el método correcto, de acuerdo con la cantidad de registros que espera obtener, consulte Conceptos básicos .
Y luego manejar .then/.catch
de acuerdo con su lógica de negocios. No puedo ser más específico aquí, porque no proporcionaste más detalles al respecto.