PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

TypeError:Die Methode „query“ von null kann nicht aufgerufen werden – beim Aufrufen von pg.connect mit Heroku node.js

Ich hatte das gleiche Problem mit meiner Site und frustrierender war, dass es auf der bereitgestellten Site funktionierte, aber als ich versuchte, die Site lokal auszuführen (mit Foreman), erhielt ich diesen Fehler. Aus dem Fehler ging hervor, dass ich keine Verbindung herstellen konnte zur Datenbank und von weiteren Überprüfungen sind dies die zwei Gründe, die diesen Fehler verursacht haben:

  1. Keine Umgebungsvariable DATABASE_URL
    Aus irgendeinem Grund hatte ich die process.env.DATABASE_URL nicht set in meiner .env-Datei, obwohl es auf der Remote-Site richtig eingestellt war. Um dieses Problem zu lösen, können Sie „heroku config“ ausführen und die erforderliche DATABASE_URL in Ihre lokale .env-Datei kopieren (falls diese Datei nicht existiert, erstellen Sie eine).
    Wichtiger Hinweis: Wenn Sie die Variablen kopieren und einfügen, ändern Sie das ":"-Zeichen in "=".

  2. ?ssl=true ist nicht Teil der DATABASE_URL
    Dank der obigen Fehlerbehebung weiß der Client jetzt, wo er sich verbinden muss, aber er konnte die Verbindung aufgrund von Authentifizierungsproblemen immer noch nicht öffnen. Durch Hinzufügen von ?ssl=true zur DATABASE_URL hat es das Problem endlich für mich gelöst. Es scheint, dass Sie den Parameter nicht übergeben müssen, wenn Sie versuchen, eine Verbindung von der Remote-Site (Heroku-Server) herzustellen, aber wenn Sie versuchen, von Ihrem lokalen Computer aus eine Verbindung zur Datenbank herzustellen, benötigen Sie diese Authentifizierung, um eine ordnungsgemäße Verbindung herzustellen.

Hoffe es hilft.