Se sei sicuro che la tua stringa di connessione sia già ben formata come quella descritta da gnerkus, l'ultima cosa che devi controllare è la tua password. Se contiene caratteri non alfanumerici, forse è quello che causa il problema. Sembra che il Node.js o il modo in cui javascript funzioni da solo causando questo (non ne sono davvero sicuro poiché pg-admin può connettersi perfettamente usando la mia password iniziale).
La mia password conteneva '+'
e '/'
(acquisito creando un lungo json pieno di parole senza senso e quindi hash la stringa base64 risultante) e sicuramente riceve lo stesso errore come il tuo. Una volta eliminato (dalla mia stringa di connessione e dall'aggiornamento della password del mio database), funziona correttamente.
Oh, e... '='
è accettato però. Perché sembra che il problema sia con il processo di decodifica dell'URL sul lato del database. Quando ho inviato '+'
, penso sia stato sostituito da ' '
che causerà una password errata. E il '/'
stava causando un URL non corretto che è la causa principale del nostro errore (che dice non trovato). Dai un'occhiata a questo esempio.
postgres://username:sdkadady88da8+8ahdajd/[email protected]/database
Sono sicuro che ti renderai conto che ci sono ulteriori '/'
che causerà la rottura dell'URL errato. Quindi, protocol:// user:[email protected] / database
modificato in protocol:// [malformed user:[email protected]] / [malformed database name] / [some gibberish]
a causa di quel '/'
extra .
Se un tuo collega che accede utilizzando JSF può modificare la propria stringa di connessione, ti suggerisco di aggiornare la password con una accettata da entrambi. In caso contrario, è necessario creare un altro utente/ruolo con lo stesso diritto di accesso ma password diversa che può essere utilizzata da Node.js.
EDIT:O meglio ancora, secondo la discussione qui, prova a codificare la parte della password della stringa di connessione. Dicono che funzioni. Non mi sono preoccupato di provarlo poiché ho già cambiato la mia password. Dal momento che il problema persiste, potresti provare prima di eseguire uno dei miei due suggerimenti sopra.