我正在Windows Server 2012上运行nodejs服务器.App端口是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意味着我根据this问题没有对端口7090的访问权限,但我不知道如何解决这个问题。任何帮助非常感谢!
答案 0 :(得分:1)
这意味着其他东西(可能是您的应用)已在该端口上运行。也许你在后台运行它或作为另一个用户运行它并且现在无法恢复它。您可以在Windows服务器上使用netstat查找谁正在使用该端口:https://technet.microsoft.com/en-us/library/ff961504(v=ws.11).aspx
答案 1 :(得分:1)
lsof -i:7090
找到PID然后
kill -9 PID
答案 2 :(得分:0)
问题已解决!该端口已经意外地被IISNode监听。我刚删除它,现在可以在端口7090上运行。
答案 3 :(得分:0)
当我尝试在服务器上运行节点应用程序时,我遇到了同样的问题,但幸运的是,在进行少量搜索之后,我找到了解决方案,然后我以超级用户身份使用了节点命令,这非常简单,我知道发问者已经得到了答案但希望这会对其他人有所帮助。
sudo node your_app_name.js