6

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,但错误仍然相同。

4

6 回答 6

13

在 Ubuntu 上,如果没有 root 权限,您将无法侦听 < 1024 的端口。尝试在 sudo 下运行节点。

sudo node app.js
于 2013-11-04T04:36:19.543 回答
7

您可能在端口 80 上运行 apache,所以它是冲突的。

使用另一个端口(不在 0-1023 范围内),或禁用 apache。

干杯

于 2013-11-03T22:00:20.103 回答
1

您可能在端口 80 上运行了其他东西,所以它是冲突的。

阅读此处以了解正在使用端口 80 的内容并停止它 http://www.cyberciti.biz/faq/find-linux-what-running-on-port-80-command/

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

    sudo 服务 apache2 停止

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

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

    转到工具 -> 选项 -> 高级 -> 连接并取消选中“使用端口 80 和 443 作为替代”框。源代码

  4. 或使用其他端口

    http-server -a 本地主机 -p 8000

于 2015-02-09T04:42:35.520 回答
0

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

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

不过,看到其他一些代码片段可能会很有帮助。

于 2013-11-03T21:34:44.453 回答
0

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

于 2014-01-19T02:40:42.440 回答
0

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

于 2014-04-06T12:25:52.330 回答