如果我运行一个端口80的服务器,我尝试使用XMLHttpRequest,我得到这个错误

为什么NodeJS会有问题,如果我想做一个请求,而我在端口80上运行一个服务器?对于网络浏览器来说,这不是问题:我可以在服务器运行时上网。

服务器为:

  net.createServer(function (socket) {
    socket.name = socket.remoteAddress + ":" + socket.remotePort;
    console.log('connection request from: ' + socket.remoteAddress);
    socket.destroy();
  }).listen(options.port);

请求是:

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function() {
    sys.puts("State: " + this.readyState);

    if (this.readyState == 4) {
        sys.puts("Complete.\nBody length: " + this.responseText.length);
        sys.puts("Body:\n" + this.responseText);
    }
};

xhr.open("GET", "http://mywebsite.com");
xhr.send();

当前回答

在ZSH中,当我输入退出时,我注意到一条消息:ZSH:您已暂停作业。

输入单词jobs,按回车键 输入kill %1(其中%1是作业号),按enter键 响应应声明已终止{job_name}

我在这里找到了答案

其他回答

两个服务器不能侦听同一端口,所以检查其他服务器是否侦听同一端口,也检查浏览器同步是否运行在同一端口上

您应该尝试杀死正在端口80上侦听的进程。

Killall将杀死所有正在运行的节点应用程序。你可能不想这么做。使用这个命令,你只能杀死一个正在监听一个已知端口的应用程序。

如果使用unix,请尝试以下命令:

sudo fuser -k 80/tcp    

NOOB错误修复:我是Node.js的新手,并设置了一个监听端口8080的web服务器。我遇到EADDRINUSE错误。我尝试了所有不同的“杀死-9节点”迭代,并一直得到,“节点:没有发现进程”

问题是,我在调用http.listen(8080);在同一段代码中出现了两次。所以第一次它实际上工作得很好,第二次它抛出一个错误。

如果在尝试关闭端口时得到“no process found”响应,请尝试检查以确保只打开一次端口。

EADDRINUSE表示端口(我们在节点应用程序中尝试侦听的端口)已经被使用。为了克服这个问题,我们需要确定哪个进程正在使用该端口运行。

例如,如果我们试图在3000端口监听节点应用程序。我们需要检查该端口是否已经被任何其他进程使用。

步骤1:

$sudo netstat -plunt |grep :3000

上面的命令给出下面的结果。

tcp6       0      0 :::3000                 :::*                    LISTEN      25315/node

步骤2:

现在您获得了进程ID(25315),杀死该进程。

kill -9 25315

步骤3:

npm run start

注意:此解决方案适用于linux用户。

在我的情况下,我使用一个虚拟主机,但它在本地主机是一样的,我使用:

ps -aef | grep 'node' 

对于节点进程的监视,控制台用PID显示进程。 要杀死进程,你必须使用这个命令:

kill -9 PID

其中PID是上面命令中的进程id。