如果我运行一个端口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();

当前回答

在控制器环境下,你可以使用:

在运行脚本之前,Pkill节点应该完成这项工作。

请记住,这个命令会杀死所有的节点进程,如果你有一个容器只运行一个实例,这可能是正确的,如果你有这样的环境,你可以保证。

在任何其他场景中,我建议使用命令终止通过编程方式查找的某个进程id或名称。比如,如果你的进程被调用node-server-1你可以执行pkill node-server-1。

这个资源可能有助于理解: https://www.thegeekstuff.com/2009/12/4-ways-to-kill-a-process-kill-killall-pkill-xkill/

其他回答

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

ps -aef | grep 'node' 

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

kill -9 PID

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

Sudo kill $(Sudo lsof -t:80)

对于武力杀伤

Sudo kill -9 $(Sudo lsof -t:80)

使用上述CMD杀死特定端口,然后运行您的服务器

我更喜欢做

Killall -15节点

因为kill -15给了进程一个自我清理的机会。 现在,你可以通过

Ps aux | grep节点

注意:如果您不给进程一个机会来完成它当前正在做的事情并进行清理,可能会导致文件损坏

我以前(在节点中)用http看到过这个错误。我记得,这个问题与没有初始化httpClient或在httpClient创建和/或url请求中设置错误的选项有关。

在控制器环境下,你可以使用:

在运行脚本之前,Pkill节点应该完成这项工作。

请记住,这个命令会杀死所有的节点进程,如果你有一个容器只运行一个实例,这可能是正确的,如果你有这样的环境,你可以保证。

在任何其他场景中,我建议使用命令终止通过编程方式查找的某个进程id或名称。比如,如果你的进程被调用node-server-1你可以执行pkill node-server-1。

这个资源可能有助于理解: https://www.thegeekstuff.com/2009/12/4-ways-to-kill-a-process-kill-killall-pkill-xkill/