2016-06-14 66 views
2

我一直在嘗試一切,但它一直拋出這個錯誤在日誌中。並且在嘗試訪問url時說502壞的網關。我在evennode部署我的nodejs應用程序,但我得到這個錯誤

events.js:141 
     throw er; // Unhandled 'error' event 
    ^
Error: listen EACCES 0.0.0.0:80 
at Object.exports._errnoException (util.js:870:11) 
    at exports._exceptionWithHostPort (util.js:893:20) 
    at Server._listen2 (net.js:1221:19) 
    at listen (net.js:1270:10) 
    at net.js:1379:9 
    at nextTickCallbackWith3Args (node.js:453:9) 
    at process._tickCallback (node.js:359:17) 
    at Function.Module.runMain (module.js:443:11) 
    at startup (node.js:139:18) 
    at node.js:968:3 

這裏是我的app.js(也是我在package.json中指定的啓動腳本)。

var app = require('express')(); 
var http = require('http').Server(app); 
var path = require('path'); 
var io = require('socket.io')(http); 


var routes = require('./routes/home'); 
var users = require('./routes/users'); 

io.on('connection', function(socket) { 
    console.log('a user connected'); 
    socket.on('message', function (data) { 
     console.log(data); 
     io.emit('msg', data); 
    }); 
}); 

http.listen(process.env.port, '0.0.0.0', function(err) { 
    console.log('server runninng at ' + http.url); 
}); 

雖然在控制檯(標準輸出),它說 - >啓動應用程序 - >運行的服務器在不確定的

回答

1

由於env vars區分大小寫,因此您應該將process.env.port更新爲process.env.PORT

的聽應該是這樣的:

http.listen(process.env.PORT, '0.0.0.0', function(err) { 
    console.log('server runninng at ' + http.url); 
}); 
+0

我確實工作過!謝謝 –

0

0.0.0.0不聽一個有效的地址。嘗試使用127.0.0.1來收聽本地機器上的循環,或者改爲取得機器IP地址。

0.0.0.0表示通常用於路由的所有端口。

1

實驗與您的代碼,看看是什麼原因造成的問題。第一次嘗試:

http.listen(4000, '0.0.0.0', function(err) {... 

這將解決問題,如果它與您的process.env.PORT變量有關。

如果還是不行,請嘗試:

http.listen(4000, function(err) {... 

這將解決這個問題,如果它是是與提供的主機名(0.0.0.0)。 listen函數中的hostname參數是可選的,所以它應該沒有問題。

相關問題