2015-04-09 16 views
5

Ich versuche, meine Knoten-App in Bluemix zu starten und einen seltsamen Fehler zu bekommen. Meine App funktioniert lokal. Ich habe einen Ausschnitt aus meiner App kopiert.Ich habe Probleme beim Starten meiner Knoten-App in Bluemix

var express = require("express"), 
    app = express(); 

app.get("/", function (request, response) { 
    response.render("index"); 
}); 

app.listen(8080); 

Meine App startet nie in Bluemix. Der Fehler, den ich auf Bluemix bekomme, ist unten.

[11:07 AM] [email protected] [testapp]>cf push myapp 
Creating app myapp in org [email protected]/space demos as [email protected] 
OK 

Creating route myapp.mybluemix.net... 
OK 

Binding myapp.mybluemix.net to myapp... 
OK 

Uploading myapp... 
Uploading app files from: /Users/jsloyer/Downloads/testapp 
Uploading 566, 2 files 
Done uploading    
OK 

Starting app myapp in org [email protected]/space demos as [email protected] 
-----> Downloaded app package (4.0K) 
-----> Node.js Buildpack Version: v1.15-20150331-2231 
-----> Resetting git environment 
     TIP: Specify a node version in package.json 
-----> Defaulting to latest stable node: 0.10.38 
-----> Installing IBM SDK for Node.js from cache 
-----> Checking and configuring service extensions 
-----> Installing dependencies 
     npm WARN package.json [email protected] No description 
     npm WARN package.json [email protected] No repository field. 
     npm WARN package.json [email protected] No README data 
     ├── [email protected] 
     ├── [email protected] 
     ├── [email protected] 
     ├── [email protected] 
     ├── [email protected] 
     ├── [email protected] 
     ├── fres[email protected] 
     ├── [email protected] 
     ├── [email protected] 
     ├── [email protected] 
     ├── [email protected] 
     ├── [email protected] 
     ├── [email protected] ([email protected], [email protected]) 
     ├── [email protected] ([email protected]) 
-----> Caching node_modules directory for future builds 
-----> Cleaning up node-gyp and npm artifacts 
-----> No Procfile found; Adding npm start to new Procfile 
-----> Building runtime environment 
-----> Checking and configuring service extensions 
-----> Installing App Management 

-----> Uploading droplet (8.9M) 

0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 down 
0 of 1 instances running, 1 down 
0 of 1 instances running, 1 down 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 down 
0 of 1 instances running, 1 down 
0 of 1 instances running, 1 down 
0 of 1 instances running, 1 down 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
0 of 1 instances running, 1 starting 
FAILED 
Start app timeout 

TIP: use 'cf logs myapp --recent' for more information 

Hier sind die Protokolle von wann die App versucht zu implementieren.

[11:10 AM] [email protected] [node-red]>cf logs myapp --recent 
Connected, dumping recent logs for app myapp in org [email protected]/space demos as [email protected] 

2015-04-09T11:07:12.97-0400 [API]  OUT Created app with guid de2f73ce-e19a-4daa-b4a9-6ab59588a069 
2015-04-09T11:07:16.60-0400 [API]  OUT Updated app with guid de2f73ce-e19a-4daa-b4a9-6ab59588a069 ({"route"=>"e518e637-6b86-4110-8359-b8cdeda946e2"}) 
2015-04-09T11:07:48.28-0400 [DEA]  OUT Got staging request for app with id de2f73ce-e19a-4daa-b4a9-6ab59588a069 
2015-04-09T11:08:13.54-0400 [API]  OUT Updated app with guid de2f73ce-e19a-4daa-b4a9-6ab59588a069 ({"state"=>"STARTED"}) 
2015-04-09T11:08:13.71-0400 [STG]  OUT -----> Downloaded app package (4.0K) 
2015-04-09T11:08:14.39-0400 [STG]  OUT -----> Node.js Buildpack Version: v1.15-20150331-2231 
2015-04-09T11:08:14.39-0400 [STG]  OUT -----> Resetting git environment 
2015-04-09T11:08:14.84-0400 [STG]  OUT  TIP: Specify a node version in package.json 
2015-04-09T11:08:14.84-0400 [STG]  OUT -----> Defaulting to latest stable node: 0.10.38 
2015-04-09T11:08:14.84-0400 [STG]  OUT -----> Installing IBM SDK for Node.js from cache 
2015-04-09T11:08:15.27-0400 [STG]  OUT -----> Checking and configuring service extensions 
2015-04-09T11:08:15.39-0400 [STG]  OUT -----> Installing dependencies 
2015-04-09T11:08:16.14-0400 [STG]  OUT  npm WARN package.json [email protected] No description 
2015-04-09T11:08:16.14-0400 [STG]  OUT  npm WARN package.json [email protected] No repository field. 
2015-04-09T11:08:16.14-0400 [STG]  OUT  npm WARN package.json [email protected] No README data 
2015-04-09T11:08:18.57-0400 [STG]  OUT  ├── [email protected] 
2015-04-09T11:08:18.57-0400 [STG]  OUT  ├── [email protected] 
2015-04-09T11:08:18.57-0400 [STG]  OUT  ├── [email protected] 
2015-04-09T11:08:18.57-0400 [STG]  OUT  ├── [email protected] 
2015-04-09T11:08:18.57-0400 [STG]  OUT  ├── [email protected] 
2015-04-09T11:08:18.57-0400 [STG]  OUT  ├── [email protected] 
2015-04-09T11:08:18.57-0400 [STG]  OUT  ├── [email protected] 
2015-04-09T11:08:18.57-0400 [STG]  OUT  ├── [email protected] 
2015-04-09T11:08:18.57-0400 [STG]  OUT  ├── [email protected] 
2015-04-09T11:08:18.57-0400 [STG]  OUT  ├── [email protected] 
2015-04-09T11:08:18.57-0400 [STG]  OUT  ├── [email protected] 
2015-04-09T11:08:18.57-0400 [STG]  OUT  ├── [email protected] 
2015-04-09T11:08:18.57-0400 [STG]  OUT  ├── [email protected] ([email protected], [email protected]) 
2015-04-09T11:08:18.57-0400 [STG]  OUT  ├── [email protected] ([email protected]) 
2015-04-09T11:08:18.64-0400 [STG]  OUT -----> Caching node_modules directory for future builds 
2015-04-09T11:08:18.69-0400 [STG]  OUT -----> Cleaning up node-gyp and npm artifacts 
2015-04-09T11:08:18.70-0400 [STG]  OUT -----> No Procfile found; Adding npm start to new Procfile 
2015-04-09T11:08:18.71-0400 [STG]  OUT -----> Building runtime environment 
2015-04-09T11:08:18.71-0400 [STG]  OUT -----> Checking and configuring service extensions 
2015-04-09T11:08:18.86-0400 [STG]  OUT -----> Installing App Management 
2015-04-09T11:08:19.07-0400 [STG]  ERR 
2015-04-09T11:08:22.56-0400 [STG]  OUT -----> Uploading droplet (8.9M) 
2015-04-09T11:08:29.25-0400 [DEA]  OUT Starting app instance (index 0) with guid de2f73ce-e19a-4daa-b4a9-6ab59588a069 
2015-04-09T11:08:56.16-0400 [App/0] OUT 
2015-04-09T11:08:56.16-0400 [App/0] OUT > [email protected] start /home/vcap/app 
2015-04-09T11:08:56.16-0400 [App/0] OUT > node app.js 
2015-04-09T11:09:55.54-0400 [DEA]  ERR Instance (index 0) failed to start accepting connections 
2015-04-09T11:09:55.58-0400 [API]  OUT App instance exited with guid de2f73ce-e19a-4daa-b4a9-6ab59588a069 payload: {"cc_partition"=>"default", "droplet"=>"de2f73ce-e19a-4daa-b4a9-6ab59588a069", "version"=>"0d4e67c9-1c0c-4e11-bbfb-027bb45e0d67", "instance"=>"eab34911da3947a3bb1b9e2a5564da72", "index"=>0, "reason"=>"CRASHED", "exit_status"=>-1, "exit_description"=>"failed to accept connections within health check timeout", "crash_timestamp"=>1428592195} 
2015-04-09T11:09:56.14-0400 [App/0] ERR 
2015-04-09T11:10:28.80-0400 [DEA]  OUT Starting app instance (index 0) with guid de2f73ce-e19a-4daa-b4a9-6ab59588a069 

Irgendwelche Ideen?

Antwort

7

Ich fand heraus, es war ein Problem mit Cloud Foundry meine App zu starten.

In meinen Code zu graben versuchte ich lokal an Port 8080 zu binden. Das ist in Ordnung, aber in Cloud Foundry müssen Sie an einen bestimmten Port binden. Dazu müssen Sie eine Umgebungsvariable namens VCAP_APP_PORT lesen. Ich habe unten ein Code-Snippet eingefügt, wie ich es behoben habe.

var express = require("express"), 
    app = express(); 


var port = process.env.VCAP_APP_PORT || 8080; 

app.get("/", function (request, response) { 
    response.render("index"); 
}); 

app.listen(port); 
3

Ein weiterer Vorschlag: Wenn Sie diese vor dem Aufruf In dem app.listen(...)

process.on('uncaughtException', function (err) { 
    console.log(err); 
}); 

Ihre Konsole Protokolle umfassen dann einen hilfreichen Stack-Trace, wenn der Startup-Code für einen unvorhergesehenen Grund fehlschlägt, anstatt den Standard des Empfangens " App abgestürzt "Nachricht.

2

Sie können diesen Text von der .stack Eigenschaft von jedem Error abrufen. Zum Beispiel:

try { 
    throw new Error(); 
} catch (e) { 
    console.log(e.stack); 
} 

oder einfach nur neu ein Fehler für die Zwecke des Erhaltens des Stack-Trace mit console.log(new Error().stack) auf. Dieses Code-Snippet wird die Stack-Ablaufverfolgung an einem beliebigen Punkt erhalten, nicht nur in einem catch-Block.