繁体   English   中英

在Ubuntu 12.04上使用http.createServer()。listen()时Node.js未处理的'错误'事件

[英]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/

  1. 通常它意味着启用了另一个像apache这样的服务器。 所以停止它。

    sudo service apache2 stop

  2. 或者你已经npm start在另一个终端上运行npm start

  3. 或Skype正在运行。 在这种情况下转到设置并更改它的端口。 注销n登录

    转到工具 - >选项 - >高级 - >连接,然后取消选中“使用端口80和443替代”框。 SRC

  4. 或使用其他港口

    http-server -a localhost -p 8000

我建议安装最新的节点数据包,可能直接从Node.js服务器安装,也许可以编译它。

尝试设置一个不保留给任何服务的端口,如3700。

但是,可能需要查看其他代码片段。

如果你还有其他东西已经在该端口上侦听,也会导致这种情况 - 你可以尝试将端口从典型的默认80更改为更像10014的东西,看看是否有帮助!

在听取服务器时,我能够通过明确地提及“IP地址”以及端口来纠正错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM