2016-06-14 125 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参数是可选的,所以它应该没有问题。

相关问题