Pokud jste si jisti, že váš připojovací řetězec je již správně vytvořen jako ten, který popsal gnerkus, poslední věc, kterou musíte zkontrolovat, je vaše heslo. Pokud obsahuje jiné než alfanumerické znaky, možná je to ten, kdo způsobuje problém. Zdá se, že to způsobuje Node.js nebo způsob, jakým funguje samotný javascript (nejsem si opravdu jistý, protože pg-admin se může připojit pomocí mého počátečního hesla v pohodě).
Moje heslo obsahovalo '+'
a '/'
(získáno vytvořením dlouhého jsonu naplněného bláboly a následným hashováním výsledného řetězce base64) a jsem si jistý, že dostává stejnou chybu jako vy. Jakmile se toho zbavím (z mého připojovacího řetězce a aktualizace hesla mé databáze), funguje to dobře.
Jo a ... '='
je však přijímán. Protože se zdá, že problém je s procesem dekódování adresy URL na straně databáze. Když jsem poslal '+'
, myslím, že to bylo nahrazeno ' '
což způsobí nesprávné heslo. A '/'
způsobovala nesprávně tvarovanou adresu URL, což je hlavní příčina naší chyby (která říká, že nebyla nalezena). Podívejte se na tento příklad.
postgres://username:sdkadady88da8+8ahdajd/[email protected]/database
Jsem si jistý, že si uvědomíte, že existují další '/'
což způsobí rozpad nesprávné adresy URL. Takže protocol:// user:[email protected] / database
změněno na protocol:// [malformed user:[email protected]] / [malformed database name] / [some gibberish]
kvůli tomu extra '/'
.
Pokud váš kolega, který k němu přistupuje pomocí JSF, může upravit svůj připojovací řetězec, doporučuji aktualizovat heslo na takové, které přijímají oba. Pokud nemohou, musíte vytvořit dalšího uživatele/roli se stejným přístupovým právem, ale jiným heslem, které lze použít z Node.js.
EDIT:Nebo ještě lépe, podle diskuse zde, zkuste zakódovat část hesla vašeho připojovacího řetězce. Prý to funguje. Neobtěžoval jsem se to zkusit, protože jsem si již změnil heslo. Vzhledem k tomu, že s tímto problémem stále přetrváváte, možná jej budete chtít nejprve vyzkoušet, než uděláte jeden z mých dvou výše uvedených návrhů.