express.js 的使用方法调用了两次

a use method of express.js called twice

我有一个非常简单的 node.js 项目,其中为我的项目设置了 express.js 库。我发现在向nodejs服务器发起请求时,使用express().use()实现的中间件被调用了两次

下面是express库使用和实现中间件层的代码片段

const express = require('express');
const app = express();

app.use((req, res, next) => {
  console.log('This is a middleware layer!');
  res.send('hello from express.');
});

module.exports = app;

请问有什么问题吗?非常感谢。

以下屏幕截图显示 console.log 运行 两次。

https://i.stack.imgur.com/RIs6J.png

修改您的中间件以记录 req.url 以便您可以查看请求的资源:

app.use((req, res, next) => {
  console.log('This is a middleware layer!', req.url);    // Log req.url
  res.send('hello from express.');
});

您可能会发现浏览器正在请求 /favicon.ico(除了常规网页之外)以查看是否有要显示此网页的图标。这是 browser-specific 的事情。

这就是您通常不应将服务器配置为始终 returns 200 状态的原因,无论 URL 是什么,因为这会使客户端或爬虫认为实际上存在URL 的资源,但确实没有。当您没有 URL.

的特定内容时,应返回 404