2015-04-09 9 views
5

Sto provando ad avviare la mia app di nodo in Bluemix e ottenere uno strano errore. La mia app funziona localmente. Ho copiato uno snippet dalla mia app in basso.Sto riscontrando problemi nell'avviare la mia app di nodo in Bluemix

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

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

app.listen(8080); 

La mia app non inizia mai in Bluemix. L'errore che sto ottenendo su Bluemix è sotto.

[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] 
     ├── [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 

Ecco i registri da quando l'app tenta di eseguire la distribuzione.

[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 

Qualche idea?

risposta

7

Ho scoperto che si trattava di un problema con Cloud Foundry che avviava la mia app.

Nello scavare nel mio codice cercavo di eseguire il binding sulla porta 8080 localmente. Va bene, ma in Cloud Foundry è necessario associare a una porta specificata. Per fare questo è necessario leggere una variabile d'ambiente chiamata VCAP_APP_PORT. Ho incollato un frammento di codice qui sotto su come l'ho risolto.

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

Un altro suggerimento: Aggiungi questo prima della chiamata a app.listen(...)

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

I registri della console potranno quindi includere una traccia dello stack utile se il codice di avvio non riesce per un motivo imprevisto invece di ricevere il default " app interrotta "messaggio.

2

È possibile ottenere questo testo dalla proprietà .stack da qualsiasi Error. Per esempio:

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

o semplicemente nuovo di un errore ai fini di ottenere l'analisi dello stack con console.log(new Error().stack). Questo snippet di codice otterrà la traccia dello stack in qualsiasi momento, non solo in un blocco catch.

Problemi correlati