javascript - 无法关闭服务器(nodeJS)

标签 javascript node.js

为什么我无法通过在浏览器中请求 localhost:13777/close 来关闭服务器(它继续接受新请求),但它会在超时 15000 时正常关闭? Node 版本是0.10.18。我陷入了这个问题,尝试使用文档中有关域异常处理的代码示例(每次我第二次尝试请求错误页面时,它都会给我“未运行”错误),最后来到此代码。

var server

server = require("http").createServer(function(req,res){

  if(req.url == "/close")
  {
    console.log("Closing server (no timeout)")

    setTimeout(function(){
      console.log("I'm the timeout")
    }, 5000);    

    server.close(function(){
      console.log("Server closed (no timeout)")
    })    

    res.end('closed');
  }
  else
  {
    res.end('ok');
  }

});

server.listen(13777,function(){console.log("Server listening")});

setTimeout(function(){

  console.log("Closing server (timeout 15000)")
  server.close(function(){console.log("Server closed (timeout 15000)")})

}, 15000);

最佳答案

服务器仍在等待客户端的请求。客户端正在利用 HTTP keep-alive。

我想您会发现,虽然现有客户端可以发出新请求(因为连接已经建立),但其他客户端将无法这样做。

关于javascript - 无法关闭服务器(nodeJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18941003/

相关文章:

node.js - 测试来自 NodeJS 的简单 GET 请求

javascript - 如何编写nodejs服务,一直运行

javascript - Fullcalendar 2.0.2 更改单元格背景

javascript - 如何在 Play Framework 2.3.8 中不使用按钮的情况下使字形图标可点击并更改其外观?

javascript - jquery $ 如何在 javascript 中充当对象和函数?

javascript - Node.js 中未定义上传的图像数据

python - 如何在同一个vps上运行python、java、php、nodejs、ruby应用程序?

javascript - jQuery.addClass() 不工作

javascript - jQuery .on 和 .trigger

javascript - yarn 开始不工作 |错误 `ERR_PACKAGE_PATH_NOT_EXPORTED'