我在evennode部署我的nodejs应用程序,但我得到这个错误
我一直在尝试一切,但它一直在日志中抛出这个错误。 并试图访问该url时说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 ); });
虽然在控制台(标准输出)它说 – >启动应用程序 – >在未定义的运行服务器
您应该将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 ); });
试用你的代码来看看是什么导致了这个问题。 第一次尝试:
http.listen(4000, '0.0.0.0', function(err) {...
这将解决问题,如果这是与你的process.env.PORT
variables。
如果这不起作用,请尝试:
http.listen(4000, function(err) {...
如果与提供的主机名( 0.0.0.0
)有关,这将解决问题。 listen函数中的hostname参数是可选的,所以它应该没有问题。
0.0.0.0不是一个有效的地址来收听。 尝试使用127.0.0.1来监听本地机器上的循环,或者改为取得机器的IP地址。
0.0.0.0表示通常所有的路由端口。