我无法在Bluemix中启动我的节点应用程序

我试图在Bluemix中启动我的节点应用程序,并得到一个奇怪的错误。 我的应用在本地工作。 我从下面的应用程序中复制了一个片段。

var express = require("express"), app = express(); app.get("/", function (request, response) { response.render("index"); }); app.listen(8080); 

我的应用程序从未在Bluemix中启动。 我在Bluemix上遇到的错误如下。

 [11:07 AM] jsloyer@Jeffs-MacBook-Pro [testapp]>cf push myapp Creating app myapp in org myemail@co.com / space demos as myemail@co.com... 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 myemail@co.com / space demos as myemail@co.com... -----> 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 bluemix-deploy@ No description npm WARN package.json bluemix-deploy@ No repository field. npm WARN package.json bluemix-deploy@ No README data ├── methods@0.1.0 ├── parseurl@1.0.1 ├── merge-descriptors@0.0.2 ├── escape-html@1.0.1 ├── debug@0.8.1 ├── cookie-signature@1.0.3 ├── fresh@0.2.2 ├── range-parser@1.0.0 ├── qs@0.6.6 ├── buffer-crc32@0.2.1 ├── cookie@0.1.0 ├── path-to-regexp@0.1.2 ├── accepts@1.0.0 (negotiator@0.3.0, mime@1.2.11) ├── send@0.2.0 (mime@1.2.11) -----> 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 

这是应用程序尝试部署时的日志。

 [11:10 AM] jeff@jeffs-mbp [node-red]>cf logs myapp --recent Connected, dumping recent logs for app myapp in org myemail@co.com / space demos as myemail@co.com... 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 bluemix-deploy@ No description 2015-04-09T11:08:16.14-0400 [STG] OUT npm WARN package.json bluemix-deploy@ No repository field. 2015-04-09T11:08:16.14-0400 [STG] OUT npm WARN package.json bluemix-deploy@ No README data 2015-04-09T11:08:18.57-0400 [STG] OUT ├── methods@0.1.0 2015-04-09T11:08:18.57-0400 [STG] OUT ├── parseurl@1.0.1 2015-04-09T11:08:18.57-0400 [STG] OUT ├── merge-descriptors@0.0.2 2015-04-09T11:08:18.57-0400 [STG] OUT ├── escape-html@1.0.1 2015-04-09T11:08:18.57-0400 [STG] OUT ├── debug@0.8.1 2015-04-09T11:08:18.57-0400 [STG] OUT ├── cookie-signature@1.0.3 2015-04-09T11:08:18.57-0400 [STG] OUT ├── fresh@0.2.2 2015-04-09T11:08:18.57-0400 [STG] OUT ├── range-parser@1.0.0 2015-04-09T11:08:18.57-0400 [STG] OUT ├── qs@0.6.6 2015-04-09T11:08:18.57-0400 [STG] OUT ├── buffer-crc32@0.2.1 2015-04-09T11:08:18.57-0400 [STG] OUT ├── cookie@0.1.0 2015-04-09T11:08:18.57-0400 [STG] OUT ├── path-to-regexp@0.1.2 2015-04-09T11:08:18.57-0400 [STG] OUT ├── accepts@1.0.0 (negotiator@0.3.0, mime@1.2.11) 2015-04-09T11:08:18.57-0400 [STG] OUT ├── send@0.2.0 (mime@1.2.11) 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 > bluemix-deploy@ 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 

有任何想法吗?

我发现这是Cloud Foundry启动我的应用时遇到的一个问题。

在挖掘我的代码,我试图绑定到本地端口8080。 这很好,但是在Cloud Foundry中,您需要绑定到指定的端口。 为此,您需要读取一个名为VCAP_APP_PORT的环境variables。 我已经粘贴了如何修复它的代码片段。

 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); 

另一个build议:在调用app.listen(...)之前添加app.listen(...)

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

如果启动代码由于不可预知的原因而失败,而不是接收默认的“应用程序崩溃”消息,则控制台日志将包含有用的堆栈跟踪。

您可以从任何Error获取.stack属性的文本。 例如:

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

或者只是为了通过console.log(new Error().stack)获取堆栈跟踪而console.log(new Error().stack) 。 这段代码将在任何时候获取堆栈跟踪,而不仅仅是在catch块中。