sql >> Databasteknik >  >> RDS >> PostgreSQL

TypeError:Kan inte anropa metoden 'query' av null - när du anropar pg.connect med Heroku node.js

Jag hade samma problem med min sida och det som var mer frustrerande är att det fungerade på den distribuerade platsen, men när jag försökte köra webbplatsen lokalt (med hjälp av foreman) fick jag det här felet. Av felet förstod jag att jag misslyckades med att ansluta till databasen och från ytterligare kontroll av dessa är de två orsakerna som orsakade detta fel:

  1. Ingen DATABASE_URL miljövariabel
    Av någon anledning hade jag inte process.env.DATABASE_URL inställd i min .env-fil även om den var korrekt inställd på fjärrplatsen. För att lösa detta problem kan du köra "heroku config" och kopiera den nödvändiga DATABASE_URL till din lokala .env-fil (om den här filen inte finns, skapa en).
    Viktig OBS: När du kopierar och klistra in variablerna ändrar du tecknet ":" till "=".

  2. ?ssl=true är inte en del av DATABASE_URL
    Tack vare ovanstående korrigering vet klienten nu var den ska ansluta men den kunde fortfarande inte öppna anslutningen på grund av autentiseringsproblem. Genom att lägga till ?ssl=true till DATABASE_URL löste det äntligen problemet för mig. Det verkar som att när du försöker ansluta från fjärrplatsen (heroku-servrar) behöver du inte skicka parametern men när du försöker ansluta till databasen från din lokala dator behöver du denna autentisering för att göra korrekt anslutning.

Hoppas det hjälper.



  1. Fråga som insisterar på kolumner i "Order By"-satsen matchar kolumner i "Group by"-satsen

  2. Entitetsklass från databas....Fel Ogiltig resurs _pm

  3. Delegera System.Action<dynamic,int> tar inte "1"-argument

  4. Vilken datamaskeringsfunktion ska jag använda?