2015-10-06 64 views
1

我今天早上在Bluemix上創建了一個新的Node.js應用程序,並下載了樣板代碼。我在本地工作,然後推動它。在Bluemix上,它拒絕啓動。根據日誌的錯誤是:如何更正無法接受連接的Bluemix Node.js應用程序

Instance (index 0) failed to start accepting connections 

所以我用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); 
}); 

因此,如果這是不正確,這意味着代碼Bluemix告訴我下載本身就是不正確以及我無法想象這是問題。

+0

雷蒙德,請您在這裏輸入「cf logs --recent」以獲取更多詳細信息? –

+1

如果您的應用程序無法啓動,那麼也會出現此錯誤消息。我會檢查你是否可以使用「npm start」(或者如果你傳入了啓動命令,使用它)在本地啓動你的應用程序。您粘貼的代碼片段正常工作;您可以通過簡單地按下原始的入門代碼來進行仔細檢查,而無需進行更改。 –

回答

5

爲了確定cfenv是否有問題,我已經用一些更復雜的Node.js應用程序測試了這段代碼,並且它們在Bluemix上完美工作。

當您部署到Bluemix的應用程序根本無法啓動時,該消息也會出現。您可以執行以下幾項操作來解決Bluemix上的Node.js應用程序問題。

  1. 在按「cf日誌 」推送時在另一個終端中登錄日誌。在失敗後檢查日誌,以查看在暫存過程中是否有某個 失敗。
  2. 檢查在兩個推薦位置之一scripts.startpackage.jsonProcfileweb: node <start-script>您的開始命令。
  3. 檢查您的應用程序在本地工作。首先(可選),創建一個.cfignore文件,其中包含「/ node_modules」,這樣當您將應用程序推送到Bluemix時,CF CLI不會將整個文件夾中的node_modules壓入(因爲它們將被動態安裝)。接下來,擦掉node_modules目錄並執行npm install --production然後npm start(或您的自定義啓動命令)。這是Bluemix在嘗試啓動應用程序時所做的,因此您應該仔細檢查它是否在本地運行。
  4. 最後,嘗試增加你的記憶力,儘管這是不太可能的,這就是你的應用程序無法啓動的原因。
+0

您對cf日誌的評論以及Slack上的另一名IBM員工讓我意識到,我發現我搞砸了process.env。我實際上是覆蓋整個對象,可以解釋它未能啓動的奇怪問題。 –

相關問題