Salam(意为你好):)
我在我的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
,错误仍然相同。
答案 0 :(得分:13)
在Ubuntu上你无法监听端口< 1024没有root权限。尝试在sudo下运行节点。
sudo node app.js
答案 1 :(得分:7)
您可能在端口80上运行了apache,因此它存在冲突。
使用另一个端口(不在0-1023之内),或禁用apache。
干杯
答案 2 :(得分:1)
你可能在端口80上运行了其他东西,所以它有冲突。
请阅读此处以了解使用端口80的内容并将其停止 http://www.cyberciti.biz/faq/find-linux-what-running-on-port-80-command/
通常它意味着启用了另一个像apache这样的服务器。所以停止它。
sudo service apache2 stop
或您已在另一个终端中运行npm start
或Skype正在运行。在这种情况下转到设置并更改它的端口。退出登录
转到工具 - >选项 - >高级 - >连接并取消选中框"使用端口80和443替代"。src
或使用其他端口
http-server -a localhost -p 8000
答案 3 :(得分:0)
我建议安装最新的节点数据包,可能直接从Node.js服务器安装,也许可以编译它。
尝试设置一个未保留给任何服务的端口,例如3700。
但是,看看其他一些代码片段可能会很有用。
答案 4 :(得分:0)
如果您已经在该端口上侦听了其他内容,也会导致这种情况 - 您可以尝试将端口从典型的默认80更改为更像10014的内容,看看是否有帮助!
答案 5 :(得分:0)
我能够通过在收听服务器时明确地提及“IP地址”以及端口来纠正错误。