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%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% 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.
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:
Versuchen Sie heroku pg:promote
like so:
heroku pg:promote HEROKU_POSTGRESQL_WHATEVER_URL
Dies sollte die Variable DATABASE_URL auf Herokus Seite setzen.
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:
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 Ссылка
Tags und Links node.js postgresql heroku