[英]Node.js Unhandled 'error' event when using http.createServer().listen() on Ubuntu 12.04
萨拉姆(意为你好):)
我在我的Windows 7机器上开发了一个node.js脚本,它工作正常。 但是当我在我的Ubuntu 12.04上运行时,出现以下错误并暂停我的应用:
throw er; // Unhandled 'error' event
^
Error: listen EACCES
at errnoException (net.js:901:11)
at Server._listen2 (net.js:1020:19)
at listen (net.js:1061:10)
at Server.listen (net.js:1127:5)
at Object.start (/httpServer/httpServer.js:9:34)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
导致错误的点是.listen(80)
在这一行:
http.createServer(onRequest).listen(80);
^
我还尝试了一些其他端口号(如100,300,500,...)而不是80
,错误仍然是相同的。
在Ubuntu上,如果没有root权限,则无法侦听端口<1024。 尝试在sudo下运行节点。
sudo node app.js
您可能在端口80上运行了apache,因此它存在冲突。
使用另一个端口(不在0-1023之内),或禁用apache。
干杯
您可能在端口80上运行了其他东西,因此它存在冲突。
阅读此处以了解使用端口80的内容并将其停止http://www.cyberciti.biz/faq/find-linux-what-running-on-port-80-command/
通常它意味着启用了另一个像apache这样的服务器。 所以停止它。
sudo service apache2 stop
或者你已经npm start
在另一个终端上运行npm start
了
或Skype正在运行。 在这种情况下转到设置并更改它的端口。 注销n登录
转到工具 - >选项 - >高级 - >连接,然后取消选中“使用端口80和443替代”框。 SRC
或使用其他港口
http-server -a localhost -p 8000
我建议安装最新的节点数据包,可能直接从Node.js服务器安装,也许可以编译它。
尝试设置一个不保留给任何服务的端口,如3700。
但是,可能需要查看其他代码片段。
如果你还有其他东西已经在该端口上侦听,也会导致这种情况 - 你可以尝试将端口从典型的默认80更改为更像10014的东西,看看是否有帮助!
在听取服务器时,我能够通过明确地提及“IP地址”以及端口来纠正错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.