Anwendung konnte nicht gestartet werden (Port 8080) nicht verfügbar

8

Ich versuche, meine node.js-Anwendung (mit Express und Mungo) zu openshipt zu deployen und ich bin dazu nicht in der Lage. Die Anwendung funktioniert perfekt in meiner lokalen Umgebung.

Mein Einstiegspunkt ist die Datei / bin / www

Ich begründe dies als Einstiegspunkt bei openshift mit dieser Zeile in der package.json Datei (pro dieser Thread ):

%Vor%

Ich habe dafür gesorgt, dass meine mongodb-Verbindung mit Umgebungsvariablen entsprechend dem Guide wie folgt eingestellt wird:

%Vor%

Der Fehler, den ich bekomme, ist:

%Vor%

Das ist mir besonders wichtig, weil ich Port 8080 nirgendwo angeben kann. In der Tat ist der Standard-Port hier angegeben:

%Vor%

Ich bin nicht wirklich sicher, wohin ich von hier aus gehen soll. Ich habe nicht genug Informationen, um meinen nächsten Schritt zu bestimmen.

[Bearbeiten] Ich habe eine Protokollierung hinzugefügt, um zu testen, auf welchem ​​Port diese ausgeführt wird, aber die Protokollierungsanweisung wird niemals ausgeführt. Hier ist der Code

%Vor%

und Ausgabe

%Vor%

TEST TEST TEST stammt aus einer Logging-Anweisung am Anfang der Einstiegspunktdatei. Etwas scheint zu versagen, bevor es den console.log("PORT: ", port); erreicht. Es ist wahrscheinlich, dass dies etwas mit app.js zu tun hat, wo die MongoDb-Verbindung hergestellt wird.

[/ edit]

    
Don Subert 20.07.2015, 08:18
quelle

6 Antworten

11

Der Fehler stellte sich als generischer Fehler heraus, der nichts mit dem Port zu tun hatte. Offensichtlich, wenn es einen fatalen Javascriptfehler gibt, gibt es diese Nachricht.

    
Don Subert 01.10.2015, 05:58
quelle
10

Hatte genau dieselbe Fehlermeldung: Application 'appname' failed to start (port 8080 not available) on open shift node app

Nach vielen Lektüre fand heraus, dass viele verschiedene Benutzer zu verschiedenen Lösungen für die gleiche Fehlermeldung, einschließlich mir selbst kam. Ich rate daher, keine schnellen Lösungen für diesen Fehler zu suchen. Der wichtigste Schritt ist Schritt 1 in der folgenden Liste.

Meine Lösung bestand darin, eine fehlende Abhängigkeit in package.json hinzuzufügen, für meinen speziellen Fall musste ich "bcrypt":"~0.8.5" hinzufügen, so ein blödes Ding!

Nun, wie konnte ich das Problem nur beheben, wenn ich den Fehler "Port 8080 nicht verfügbar" kenne:

  1. ssh'd in die App, ging zum App-Repo-Verzeichnis ( cd $OPENSHIFT_REPO_DIR ) und führte npm start aus
  2. Got [...] Error: Cannot find module 'bcrypt' [...]
  3. Abgeloggt von ssh, starte npm info bcrypt | grep "version:" , es gab "0.8.5"
  4. zurück
  5. Der Eintrag "bcrypt": "~ 0.8.5" wurde in meine package.json und die committed / pushed-Änderungen eingefügt.
  6. Problem gelöst, App läuft!
aesede 24.09.2015 21:43
quelle
5

Ich habe hier im Detail erwähnt ... Anwendung 'Anwendungsname' konnte nicht gestartet werden (Port 8080 nicht verfügbar) in der geöffneten Schichtknoten-App

Die Lösung ist, dass Sie beim Abhören des Servers die IP-Adresse angeben müssen.

So habe ich es behoben.

%Vor%     
codebased 23.07.2015 12:11
quelle
1

Ich glaube nicht, dass diese Zeile den Server am angegebenen Port erstellen wird

%Vor%

Sie müssen es sagen, um auf den Port wie folgt zu hören:

%Vor%     
Matthew Wilson 20.07.2015 10:36
quelle
1

Während Ihre App den richtigen Port abhört, fehlt Ihnen die Tatsache, dass Sie nicht die IP-Adresse angeben, auf die Sie hören möchten. Fügen Sie etwas wie folgt unter app.set ('port', port);

hinzu %Vor%     
MartinB 22.07.2015 09:35
quelle
0

Für mich war es die Verbindungszeichenfolge. Der Vorschlag, der direkt nach dem Erstellen der mongodb-Kassette vorgeschlagen wurde, funktioniert nicht: Connection URL: mongodb://$OPENSHIFT_MONGODB_DB_HOST:$OPENSHIFT_MONGODB_DB_PORT/'nodejs'

Aber von diesem Artikel , von mit der OPENSHIFT_MONGODB_DB_URL Variable hat es funktioniert.

%Vor%

}

    
user523234 17.05.2016 13:55
quelle

Tags und Links