Hvis du er sikker på, at din forbindelsesstreng allerede er velformet som den beskrevne gnerkus, er den sidste ting, du skal tjekke, din adgangskode. Hvis det indeholder ikke-alfanumeriske tegn, er det måske den, der forårsager problemet. Det ser ud til, at enten Node.js eller måden, javascript fungerer på, forårsager dette (jeg er ikke rigtig sikker, da pg-admin kan oprette forbindelse ved hjælp af min oprindelige adgangskode).
Min adgangskode var indeholde '+'
og '/'
(erhvervet ved at oprette en lang json fyldt med volapyk og derefter hash den resulterende base64-streng), og jeg modtager sikkert den samme fejl som din. Når jeg først slipper af med det (fra min forbindelsesstreng og opdatering af min databases adgangskode), fungerer det fint.
Åh, og ... '='
er dog accepteret. Fordi det ser ud til, at problemet er med url-afkodningsprocessen på databasesiden. Da jeg sendte '+'
, jeg tror det er erstattet af ' '
hvilket vil forårsage forkert adgangskode. Og '/'
forårsagede en forkert udformet url, som er årsagen til vores fejl (som siger ikke fundet). Tag et kig på dette eksempel.
postgres://username:sdkadady88da8+8ahdajd/[email protected]/database
Jeg er sikker på, at du vil indse, at der er ekstra '/'
hvilket vil forårsage forkert url-nedbrud. Så protocol:// user:[email protected] / database
ændret til protocol:// [malformed user:[email protected]] / [malformed database name] / [some gibberish]
på grund af den ekstra '/'
.
Hvis din kollega, der har adgang til den ved hjælp af JSF, kan redigere deres forbindelsesstreng, foreslår jeg, at du opdaterer adgangskoden til en, der accepteres af begge. Hvis de ikke kan det, skal du oprette en anden bruger/rolle med samme adgangsret, men en anden adgangskode, som kan bruges fra Node.js.
EDIT:Eller endnu bedre, ifølge diskussionen her, prøv at kode adgangskodedelen af din forbindelsesstreng. De siger, det virker. Jeg gad ikke prøve det, da jeg allerede har ændret min adgangskode. Da du stadig har dette problem, vil du måske prøve det først, før du gør et af mine to forslag ovenfor.