我正在evennode上部署我的nodejs应用程序,但我收到此错误

时间:2016-06-14 07:19:42

标签: node.js deployment

我一直在尝试一切,但它不断在日志中抛出此错误。并且在尝试访问网址时说502坏网关。

 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 );
});

虽然在控制台(stdout)它说 - >启动应用程序 - >在undefined运行服务器

3 个答案:

答案 0 :(得分:1)

您应该将process.env.port更新为process.env.PORT,因为env vars区分大小写。

听起来应该是这样的:

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

答案 1 :(得分:1)

尝试使用代码查看导致问题的原因。首先尝试:

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

如果它与您的process.env.PORT变量有关,这将解决问题。

如果不起作用,请尝试:

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

如果它与提供的主机名(0.0.0.0)有关,这将解决问题。 listen函数中的hostname参数是可选的,所以没有。

就可以了

答案 2 :(得分:0)

0.0.0.0不是要侦听的有效地址。尝试使用127.0.0.1在本地计算机上收听回路,或者改为获取计算机IP地址。

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