“node index.js”(EADDRINUSE)时节点服务器错误

时间:2014-01-01 05:40:07

标签: linux node.js ubuntu-12.04 linuxmint

在Mint Maya 64上,如果我在终端中运行“node index.js”(v0.10.21),我会收到此错误:

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: listen EADDRINUSE
    at errnoException (net.js:901:11)
    at Server._listen2 (net.js:1039:14)
    at listen (net.js:1061:10)
    at Server.listen (net.js:1127:5)
    at Object.<anonymous> (/home/USER/Desktop/server/index.js:73:24)
    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)
    at Function.Module.runMain (module.js:497:10)

我的apache2服务器已停止,并且没有其他节点服务器正在运行。

我试过“killall node” - &gt;节点:找不到进程

使用“sudo netstat -tulpn”时,没有迹象表明端口80有任何监听。

因为它是我的第一个节点服务器实验,所以我不知道如何继续。

2 个答案:

答案 0 :(得分:4)

检查 index.js 文件中Node使用哪个端口作为开始。 还有另一个使用此端口的应用程序。 所以你有两个选择:

  • 杀了这个应用程序
  • 将另一个端口用于Node app

答案 1 :(得分:0)

显然,端口被EADDRINUSE错误占用。如前所述,您必须使用其他端口或终止该应用程序。

您可以做的其他事情是识别占用该特定端口的进程并将其杀死(这在某些概念中非常方便)

您可以在此处使用fuser实用程序。

关于Fuser

fuser命令是一个非常智能的UNIX实用程序,用于查找哪个进程正在使用文件,目录或套接字。它还提供有关拥有进程和访问类型的用户的信息。热熔器工具使用指定​​的文件或文件系统显示每个进程的进程ID(PID)。

在这里提供一个相关的热熔器链接。

https://www.digitalocean.com/community/tutorials/how-to-use-the-linux-fuser-command