sql >> Databáze >  >> RDS >> PostgreSQL

TypeError:Nelze volat metodu 'query' of null – při volání pg.connect s Heroku node.js

Měl jsem stejný problém se svým webem a co bylo více frustrující je, že to fungovalo na nasazeném webu, ale když jsem se pokoušel web spustit lokálně (pomocí foremana), dostal jsem tuto chybu. Z chyby jsem pochopil, že se mi nepodařilo připojit do databáze az další kontroly jsou tyto dva důvody, které způsobily tuto chybu:

  1. Žádná proměnná prostředí DATABASE_URL
    Z nějakého důvodu jsem neměl process.env.DATABASE_URL nastaveno v mém souboru .env, ačkoli bylo správně nastaveno na vzdáleném webu. Chcete-li tento problém vyřešit, můžete spustit "heroku config" a zkopírovat požadovanou DATABASE_URL do vašeho místního souboru .env (pokud tento soubor neexistuje, vytvořte jej).
    Důležitá POZNÁMKA: Když zkopírujete a vložíte proměnné, změňte znak ":" na "=".

  2. ?ssl=true není součástí DATABASE_URL
    Díky výše uvedené opravě klient nyní ví, kam se připojit, ale stále nemohl otevřít připojení kvůli problémům s autentizací. Přidáním ?ssl=true na DATABASE_URL to pro mě nakonec problém vyřešilo. Zdá se, že když se pokoušíte připojit ze vzdáleného místa (servery heroku), nemusíte předávat parametr, ale když se pokoušíte připojit k databázi z vašeho místního počítače, potřebujete toto ověření, abyste mohli vytvořit správné připojení.

Doufám, že to pomůže.



  1. PostgreSQL:problémy s kódováním ve Windows při použití nástroje příkazového řádku psql

  2. Systém hodnocení v PHP a MySQL

  3. Aplikace Django pro více nájemců:změna databázového připojení na žádost?

  4. Načítání dat z SQL databáze ve flutter datewise?