我試圖將我的node.js應用程序部署到heroku,但是當我嘗試使用工頭在本地啓動它時,我得到Error:listen EADDRINUSE。我已經運行了一個netstat併爲端口grepped,沒有其他人使用它,並且直接作爲節點http服務器運行時服務器啓動時沒有問題。使用Heroku Foreman啓動Node.js應用程序時使用的端口
我想部署的應用程序使用mongo和redis我不確定這些組件是否會影響以Foreman開頭的服務器。有沒有人對我可以查看潛在錯誤的區域有任何建議?
foreman start
01:37:18 web.1 | started with pid 1835
01:37:18 web.1 | /usr/local/foreman/lib/foreman/process.rb:66: warning: Insecure world writable dir /usr/local in PATH, mode 040777
01:37:19 web.1 | events.js:72
01:37:19 web.1 | throw er; // Unhandled 'error' event
01:37:19 web.1 | ^
01:37:19 web.1 | Error: listen EADDRINUSE
01:37:19 web.1 | at errnoException (net.js:863:11)
01:37:19 web.1 | at Server._listen2 (net.js:1008:14)
01:37:19 web.1 | at listen (net.js:1030:10)
01:37:19 web.1 | at Server.listen (net.js:1096:5)
01:37:19 web.1 | at Function.app.listen (/Users/craig/Documents/Sandboxes /xxx/node_modules/express/lib/application.js:535:24)
01:37:19 web.1 | at Object.<anonymous> (/Users/craig/Documents/Sandboxes/xxx/web.js:25:5)
01:37:19 web.1 | at Module._compile (module.js:456:26)
01:37:19 web.1 | at Object.Module._extensions..js (module.js:474:10)
01:37:19 web.1 | at Module.load (module.js:356:32)
01:37:19 web.1 | at Function.Module._load (module.js:312:12)
01:37:19 web.1 | exited with code 8
01:37:19 system | sending SIGTERM to all processes
SIGTERM received
謝謝。
--Additional information--
的procfile剛剛有一個條目: 網站:節點web.js
,我已經設置了聽衆組成如下:
var port = process.env.PORT || 5000;
app.listen(port, function() {
console.log("Listening on " + port);
});
你想在特定的端口上啓動你的HTTP服務器嗎? (注意,每當你想在[tag:heroku]上啓動一個HTTP服務器時,你應該使用'process.env.PORT'作爲端口號。) – fardjad
請發佈你的Procfile和node.ks應用配置 – Winfield
請找到所需的附加細節以上在原帖 – Craig