当前位置: 首页 > 面试题库 >

nodejs-http.createServer似乎调用了两次

时恩
2023-03-14
问题内容

如果我在节点中编写以下程序:

  http.createServer(function (req, res) {

    if( req.method == 'GET' ) {
      var body = ''; req.on('data', function(data) { body += data });
      req.on('end',  function() {
        console.log('request ended')
      });
    }

    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('142\n');
  }).listen(3500);

然后在服务器上单击两次,在服务器上http://xxx.xx.xxx.xx:35010看到request ended两次-
我不确定为什么单个HTTP请求导致两次执行


问题答案:

那是正常现象-您的浏览器拨打了多个电话。

例如,大多数浏览器都会呼叫来获取/favicon.ico

尝试记录网址:

console.log(req.url);

然后您会看到正在调用的内容。



 类似资料:
  • 问题内容: 我的活动课在这里: 和相机预览类在这里: 但是,当我测试该类时,似乎首先调用onResume(),然后在1或2秒后再次调用。因此,相机必须再次刷新。如果我根本没有onResume(),则摄像头预览稳定,但是如果我从主屏幕或其他某个应用再次切换到该应用,则会崩溃。我发现onPause()不会影响任何一个。我的代码正确吗?我应该添加/删除哪些内容以使其不会再次刷新并且在应用切换后仍然不会崩

  • 问题内容: 我用来为应用程序设置某个用户库的路径。但是如果我在此应用程序上设置功能 然后似乎被忽略了。当我启动程序时,Linux抱怨它找不到某个共享库。 我猜想有某种保护措施可以防止具有扩展权限的应用程序被劫持。有解决方法吗? 问题答案: 是的,出于安全原因已将其禁用。

  • 问题内容: 我正在比较测试程序上的两个变体。两者都在具有四个内核的计算机上以4线程运行。 在“模式1”下,我非常类似于执行程序服务来使用池。我把一堆任务扔了进去。与普通的固定线程执行器服务相比,我获得了更好的性能(即使有对Lucene的调用,该调用在其中执行了一些I / O)。 这里没有分而治之。从字面上看,我知道 在“模式2”中,我向池提交一个任务,然后在该任务中调用ForkJoinTask.i

  • 根据谷歌的教程,我用播放计费库1.0实现了应用内购买。我只有一个购买项目,当它解锁时,我会显示一条长度为吐司的吐司消息。LENGTH_SHORT。然而,吐司会在那里停留10秒钟,所以我假设它会被多次调用。它不会发生,当我通过queryPurchase解锁它(如果有人购买它更早,并在此期间重新安装应用程序)。 有人知道为什么祝酒会持续这么久/为什么会被多次叫来吗? 在我的BillingManager

  • 我正试图使Filepond工作,但CSS中的这一行似乎破坏了它-在ul选择器中。 我试着对页面的整个部分进行核化,直到Filepond起作用,将目标锁定在css上,最后在ul{}中找到前面提到的行。我可以把其他的东西都抹掉,只留下那条线,而文件孔仍然坏了,所以我肯定这是问题所在,但我不知道是怎么回事。 我尝试使用Chrome的检查器功能查看运行时页面源代码,但在那里找不到溢出。 然后我使用Note

  • 问题内容: 执行登录功能后,“在树中查看结果”中的响应数据显示如下: 您的浏览器似乎禁用了JavaScript。 您必须在浏览器中启用JavaScript才能使用本网站的功能。 注意:已启用Firefox中的JavaScript,并且我已使用“测试脚本记录器”来记录浏览器会话。 问题答案: 从JMeter项目主页 JMeter不是浏览器。 就Web服务和远程服务而言,JMeter看起来像一个浏览器