【问题标题】:Express js, why there are two responses from the server?express js,为什么服务器有两个响应?
【发布时间】:2019-09-22 12:06:43
【问题描述】:

我刚开始学习 express.js 和 node.js。我正在尝试创建一个简单的服务器,这是代码。

    const http = require('http');

    const express = require('express');

    const app = express();
    app.use((req, res, next)=>{
      console.log('in the middleware');
      next();
    });
    app.use((req, res, next)=>{
      console.log('in another middleware');
      res.send('<h1> I will handle this</h1>');
    });
    const server = http.createServer(app);

    server.listen(3000);

它正在工作,但在控制台中我看到了两次: 在中间件中 在另一个中间件中 在中间件中 在另一个中间件中

我不应该只看到: 在中间件中 在另一个中间件中?

【问题讨论】:

  • 你是如何测试它的?如果您从浏览器调用,则可能也会触发对 favicon 的请求。

标签: javascript node.js express visual-studio-code


【解决方案1】:

如何发送请求? 这很可能是两个不同的请求,如果您通过req.url 打印网址,您将能够看到它。

如果您通过浏览器发送请求,则可能是 GET 请求和对网站图标的请求。

【讨论】:

  • 我想这就是问题所在。当我打印 url 时,这就是我得到的:在中间件/在另一个中间件/在中间件/favicon.ico 在另一个中间件/favicon.ico 但是如何处理呢?
  • 这并不是真正需要处理的事情,它是浏览器获取并显示 favicon(网站的图标)的行为,因此它发送两个单独的请求。如果您使用其他工具发送请求,例如 curlPostman,您将在控制台中只看到一个请求。
猜你喜欢
  • 2020-01-25
  • 2018-02-19
  • 1970-01-01
  • 2018-07-26
  • 1970-01-01
  • 1970-01-01
  • 2020-07-16
  • 2014-03-29
  • 2020-11-21
相关资源
最近更新 更多