sql >> Database teknologi >  >> RDS >> PostgreSQL

TypeError:Kan ikke kalde metode 'forespørgsel' af null - når du kalder pg.connect med Heroku node.js

Jeg havde det samme problem med mit websted, og hvad der var mere frustrerende er, at det fungerede på det installerede websted, men da jeg forsøgte at køre webstedet lokalt (ved hjælp af foreman), fik jeg denne fejl. Fra fejlen forstod jeg, at jeg ikke kunne oprette forbindelse til databasen, og fra yderligere kontrol er disse to årsager, der forårsagede denne fejl:

  1. Ingen DATABASE_URL miljøvariabel
    Af en eller anden grund havde jeg ikke process.env.DATABASE_URL indstillet i min .env-fil, selvom den var indstillet korrekt på fjernsiden. For at løse dette problem kan du køre "heroku config" og kopiere den påkrævede DATABASE_URL til din lokale .env-fil (hvis denne fil ikke findes, skal du oprette en).
    Vigtig BEMÆRK: Når du kopierer og indsætter variablerne, ændres ":"-tegnet til "=".

  2. ?ssl=true er ikke en del af DATABASE_URL
    Takket være ovenstående rettelse ved klienten nu, hvor den skal oprette forbindelse, men den kunne stadig ikke åbne forbindelsen på grund af autentificeringsproblemer. Ved at tilføje ?ssl=true til DATABASE_URL løste det endelig problemet for mig. Det ser ud til, at når du forsøger at oprette forbindelse fra det eksterne websted (heroku-servere), behøver du ikke at videregive parameteren, men når du forsøger at oprette forbindelse til databasen fra din lokale computer, skal du bruge denne godkendelse for at oprette en korrekt forbindelse.

Håber det vil hjælpe.



  1. Få resultater, der falder inden for markørradius fra databasen

  2. Hvordan kan jeg optimere MySQL-forespørgsel til opdatering?

  3. Hibernate Native Query-problem med navngivne parametre

  4. Postgres json_agg inkluderer kolonneoverskrift - Forkert JSON?