what is 'Error: listen EACCES 0.0.0.0:7090'?

what is 'Error: listen EACCES 0.0.0.0:7090'?

我正在 运行 服务器 2012 上的 运行 nodejs 服务器。应用程序端口是 7090。这是 server.js 文件的一部分:

var port    = process.env.PORT || 7090;
app.listen(port, function() {
  console.log('Listening on port ' + port);
});

当我 运行 它与 node server.js 时,我得到这个错误:

Error: listen EACCES 0.0.0.0:7090
    at Object.exports._errnoException (util.js:1008:11)
    at exports._exceptionWithHostPort (util.js:1031:20)
    at Server._listen2 (net.js:1240:19)
    at listen (net.js:1289:10)
    at Server.listen (net.js:1385:5)
    at EventEmitter.listen (D:\STH\node_modules\express\lib\application.js:617:24)
    at Object.<anonymous> (D:\STH\app.js:26:5)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:458:32)

当我将端口更改为除 7090 以外的任何其他数字时,它会起作用。

错误:收听 EACCES 0.0.0.0:7090 我已经知道,根据 问题,错误 EACCES 意味着我没有端口 7090 的访问权限,但我不知道如何解决这个问题。非常感谢任何帮助!

这意味着其他东西(可能是您的应用程序)已经 运行正在该端口上。也许你 运行 它在后台或作为另一个用户,现在无法恢复它。您可以在 windows 服务器上使用 netstat 查看谁在使用该端口:https://technet.microsoft.com/en-us/library/ff961504(v=ws.11).aspx

lsof -i:7090

然后找到PID

kill -9 PID

问题已解决!该端口已意外地被 IISNode 侦听。我刚刚删除了它,现在可以在端口 7090 上 运行。

当我尝试 运行 服务器上的节点应用程序时,我遇到了同样的问题,但幸运的是,经过少量搜索后我找到了解决方案并且我以超级用户身份使用节点命令,这很简单,我知道提问者得到了答案,但希望这对其他人有所帮助。

sudo node your_app_name.js