Versuche, meine node.js mit der Heroku PostgreSQL-Datenbank zu verbinden. Nach Heroku Postgres Tutorial

7

Ich folge diesen beiden Heroku-Tutorials:

Ссылка

und

Ссылка

Ich habe die App "Hallo Welt", die funktioniert. Aber ich erhalte einen Fehler, wenn ich den node.js-Code hinzufüge, um mich mit postgreSQL zu verbinden.

Mein Paket.json

%Vor%

Meine web.js

%Vor%

Meine Postgres-Datenbank von Heroku funktioniert gut und ich kann mich direkt mit

verbinden %Vor%

Hier sind meine Protokolle:

%Vor%

Ich bekomme diese Fehlermeldung, wenn ich einen Vorarbeiter starte

%Vor%

BEARBEITEN Sie meine console.logs;

%Vor%     
rolandnsharp 30.09.2013, 02:28
quelle

5 Antworten

16

Es ist Herokus Problem. Die Variable "process.env.DATABASE_URL", die Sie in pg.connect verwenden, funktioniert nicht.

Ein einfaches

%Vor%

Zeigt an, dass diese Variable nicht definiert ist.

Bis Heroku eine Fehlerbehebung anbietet, können Sie die Verbindungs-URL als erstes Argument für pg.connect () fest codieren.

Um Ihre Anmeldedaten zu finden, können Sie über Ссылка die Einstellungen für die PostgreSQL-Add-On-Verbindung Ihrer App aufrufen.

Die neue pg.connect-Methode sieht wie

aus %Vor%     
DJ_ 13.10.2013, 03:18
quelle
9

Wenn die obigen Antworten etwas zu kurz für irgendjemand sind (sie taten es für mich) - versuchen Sie, ?ssl=true an das Ende Ihrer Umgebungsvariablen DATABASE_URL anzuhängen. Kredit an den Autor von diese Antwort . Viel Glück.

    
njenson 01.08.2015 18:54
quelle
2

Sie können den Befehl heroku pg:info verwenden, um alle Ihre Datenbanken aufzulisten. Dort finden Sie die genaue Datenbank-URL, die Sie in Ihrer App verwenden können - etwa so: HEROKU_POSTGRESQL_DBNAME_URL . Diese URL kann in der Anwendung node.js verwendet werden:

%Vor%     
Rafal Spacjer 28.01.2014 20:38
quelle
1

Versuchen Sie heroku pg:promote like so:

heroku pg:promote HEROKU_POSTGRESQL_WHATEVER_URL

Dies sollte die Variable DATABASE_URL auf Herokus Seite setzen.

    
Fox Wilson 02.02.2014 20:34
quelle
0

Ich würde nicht empfehlen, die URL hart zu codieren, da Sie möglicherweise bereit sind, eine Staging-App mit demselben Code zu erstellen.

Sie können nconf verwenden, um die Umgebungsvariablen von Heroku (gespeichert in einer .env -Datei, gelesen von foreman beim Starten Ihrer App mit Procfile ) zu sichern.

Sie können eine config.js Datei erstellen, die Ihre Variablen sammelt:

%Vor%

Dann verwenden Sie es, um Ihre Variablen abzurufen:

%Vor%

Beachten Sie, dass Sie genau die gleiche Konfiguration wie Heroku auf Ihrem lokalen Computer verwenden können. Alles, was Sie brauchen, ist ein Procfile zu erstellen, um zu beschreiben, wie Sie Ihren Server starten und eine .env -Datei mit Ihren lokalen Variablen (z. B. Ihre lokale postgresql-Datenbank-URL). Überprüfen Sie Ссылка

    
ocolot 13.09.2016 11:08
quelle

Tags und Links