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
我有一个非常简单的 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