Om du är säker på att din anslutningssträng redan är välformad som den gnerkus som beskrivs, är det sista du behöver kontrollera ditt lösenord. Om det innehåller icke-alfanumeriska tecken, kanske det är den som orsakar problemet. Det verkar som att antingen Node.js eller hur javascript fungerar som orsakar detta (jag är inte riktigt säker eftersom pg-admin kan ansluta med mitt ursprungliga lösenord helt okej).
Mitt lösenord var innehålla '+'
och '/'
(förvärvade genom att skapa en lång json fylld med skratt och sedan hasha den resulterande base64-strängen) och jag får säkert samma fel som ditt. När jag väl har blivit av med det (från min anslutningssträng och uppdatering av min databas lösenord) fungerar det bra.
Åh, och ... '='
accepteras dock. Eftersom det verkar som om problemet ligger i url-avkodningsprocessen på databassidan. När jag skickade '+'
, jag tror att den ersatts av ' '
vilket kommer att orsaka felaktigt lösenord. Och '/'
orsakade en felaktig url som är grundorsaken till vårt fel (som säger att det inte finns). Ta en titt på det här exemplet.
postgres://username:sdkadady88da8+8ahdajd/[email protected]/database
Jag är säker på att du kommer att inse att det finns extra '/'
vilket kommer att leda till att fel url går sönder. Så, protocol:// user:[email protected] / database
ändrat till protocol:// [malformed user:[email protected]] / [malformed database name] / [some gibberish]
på grund av den extra '/'
.
Om din kollega som använder den med JSF kan redigera sin anslutningssträng, föreslår jag att du uppdaterar lösenordet till ett som accepteras av båda. Om de inte kan det måste du skapa en annan användare/roll med samma åtkomsträtt men ett annat lösenord som kan användas från Node.js.
EDIT:Eller ännu bättre, enligt diskussionen här, försök att koda lösenordsdelen av din anslutningssträng. De säger att det fungerar. Jag brydde mig inte om att prova det eftersom jag redan har bytt lösenord. Eftersom du fortfarande har det här problemet, kanske du vill prova det först innan du gör något av mina två förslag ovan.