我發現了十幾個快速啓動應用程序的解決方案,並設置了偵聽端口。 但我有一個不使用Express的應用程序,事實上並沒有監聽任何東西。 成功運行60秒後,我收到一條Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
消息。 我如何解決它?謝謝。
回答
經過大量谷歌上搜索我的決定npm install express
並添加
var express = require('express');
var app = express();
app.set('port', (process.env.PORT || 5000));
//For avoidong Heroku $PORT error
app.get('/', function(request, response) {
var result = 'App is running'
response.send(result);
}).listen(app.get('port'), function() {
console.log('App is running, server is listening on port ', app.get('port'));
});
這種固定的錯誤,儘管我不喜歡加入快遞,只是爲了避免一個錯誤。如果有人找到更好的解決方案,請告訴我。
如果您的應用程序不聽任何端口,那麼你應該在你Procfile使用其他類型的應用程序,我的意思是在Procfile您有:
worker: node app.js
:
web: node app.js
代之以「web」類型的應用程序意味着您的應用程序必須監聽某個端口
看起來,Heroku似乎忽略了Procfile中的設置。 – Pille
@Pille,你安裝了[node-foreman](https://github.com/strongloop/node-foreman)嗎? –
在我的情況下,它是'worker:npm start',但這個想法保持不變。它的工作,非常感謝! –
另一種方法是將網絡中的dynos(標準設置,無論Procfile中的設置如何)更改爲worker w這些命令:
heroku ps:scale web=0
heroku ps:scale worker=1
有時Heroku會忽略Procfile中的設置。
第二個命令失敗了。我必須首先在我的Procfile中設置'worker:npm start'。 –
這對我有用,它沒有開始,直到我刪除了heroku ps:scale web = 0行,謝謝! – spences10
我有同樣的問題:
錯誤R10(啓動超時) - >網絡進程未能推出
60秒
我試過很多東西內綁定到$ PORT。
不使用表達以下工作:
http.createServer(onRequest).listen(process.env.PORT || 6000)
我需要在哪裏設置該行? – itReverie
我有同樣的問題,但我使用AdonisJS,我不能編輯這一行... –
我不知道什麼是最好的解決方案,但有一件事我知道(即沒有工作)是使用Node.js的內置模塊'HTTP '而不是要求明確的模塊。 '''var http = require('http'); (','正在運行\ n'); })。listen(process.env.PORT || 5000); ''' –
看看下面關於改變你的procfile和通過@pille縮放你的dynos的答案。它比這個答案好得多,因爲它不是一種解決方法,而是正確的解決方法。 – otusweb