Si está seguro de que su cadena de conexión ya está bien formada, como la que describió gnerkus, lo último que debe verificar es su contraseña. Si contiene caracteres no alfanuméricos, tal vez ese sea el que causa el problema. Parece que Node.js o la forma en que javascript funciona en sí mismo causa esto (no estoy muy seguro ya que pg-admin puede conectarse usando mi contraseña inicial).
Mi contraseña contenía '+'
y '/'
(adquirido al crear un json largo lleno de galimatías y luego codificarlo como resultado de la cadena base64) y seguro que recibo el mismo error que el tuyo. Una vez que me deshago de él (de mi cadena de conexión y actualizo la contraseña de mi base de datos), funciona bien.
Ah, y... '='
aunque se acepta. Porque parece que el problema está en el proceso de decodificación de URL en el lado de la base de datos. Cuando envié '+'
, creo que se reemplazó por ' '
lo que causará una contraseña incorrecta. Y el '/'
estaba causando una URL mal formada, que es la causa raíz de nuestro error (que dice no encontrado). Echa un vistazo a este ejemplo.
postgres://username:sdkadady88da8+8ahdajd/[email protected]/database
Estoy seguro de que te darás cuenta de que hay '/'
adicionales lo que hará que la URL incorrecta se descomponga. Entonces, protocol:// user:[email protected] / database
cambiado a protocol:// [malformed user:[email protected]] / [malformed database name] / [some gibberish]
debido a ese extra '/'
.
Si su colega que accede usando JSF puede editar su cadena de conexión, le sugiero que actualice la contraseña a una que ambos acepten. Si no pueden, debe crear otro usuario/rol con el mismo derecho de acceso pero una contraseña diferente que se pueda usar desde Node.js.
EDITAR:O mejor aún, de acuerdo con la discusión aquí, intente codificar la parte de la contraseña de su cadena de conexión. Dicen que funciona. No me molesté en probarlo porque ya cambié mi contraseña. Dado que todavía tiene este problema, es posible que desee probarlo primero antes de seguir una de mis dos sugerencias anteriores.