繁体   English   中英

我在Bluemix中启动节点应用程序时遇到问题

[英]I am having trouble starting my node app in 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的环境变量。 我已经在下面粘贴了一个代码片段来解释它是如何修复的。

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

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

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

如果启动代码由于无法预料的原因而失败而不是接收默认的“app crashed”消息,则您的控制台日志将包含有用的堆栈跟踪。

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

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

或者只是为了使用console.log(new Error().stack)获取堆栈跟踪而出现console.log(new Error().stack) 此代码段将在任何时刻获取堆栈跟踪,而不仅仅是在catch块中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM