如何更正无法接受连接的Bluemix Node.js应用程序

Ray*_*den 1 node.js ibm-cloud

我今天早上在Bluemix上创建了一个新的Node.js应用程序并下载了样板代码.我在当地工作,然后把它推了上去.在Bluemix上,它拒绝启动.根据日志的错误是:

Instance (index 0) failed to start accepting connections
Run Code Online (Sandbox Code Playgroud)

所以我用Google搜索,在我发现结果的每一种情况下,答案是我的应用程序试图使用特定端口而不是让Bluemix设置它.

好的,但是我使用样板代码使用的确切代码设置主机/端口:

var appEnv = cfenv.getAppEnv();
// start server on the specified port and binding host
app.listen(appEnv.port, function() {
  // print a message when the server starts listening
  console.log("server starting on " + appEnv.url);
});
Run Code Online (Sandbox Code Playgroud)

因此,如果这是不正确的,这意味着Bluemix告诉我下载本身的代码也是错误的,我无法想象这就是问题所在.

Sai*_*nam 5

为了确定是否cfenv有问题,我已经使用一些更复杂的Node.js应用程序测试了这段代码,并且它们在Bluemix上完美运行.

当您部署到Bluemix的应用程序根本无法启动时,也会出现该消息.以下是您可以对Bluemix上的Node.js应用程序进行故障排除的一些操作.

  1. 使用"cf logs"按下时尾部登录另一个终端.在失败后检查日志,以查看在暂存过程中是否出现故障.
  2. 检查两种一个你开始命令推荐名额,scripts.startpackage.json或在Procfileweb: node <start-script>.
  3. 检查您的应用程序是否在本地运 首先(可选),在其中创建一个.cfignore带有"/ node_modules" 的文件,这样当您将应用程序推送到Bluemix时,CF CLI不会推送整个node_modules文件夹(因为它们将动态安装).接下来,清除node_modules目录并执行npm install --production后跟npm start(或自定义启动命令).这是Bluemix在尝试启动应用程序时所执行的操作,因此您应该仔细检查它是否在本地运行.
  4. 最后,尝试提高你的记忆力,尽管这不太可能导致你的应用程序无法启动.