node.js - express.js 路由行为
问题描述
我从 express.js 开始,我想知道为什么下面的代码:
const express = require('express');
const app = express();
app.use('/', (req, res, next) => {
console.log('First middleware');
next();
});
app.use('/add-product', (req, res, next) => {
console.log('Second middleware');
res.send('<h1>The add-product page!</h1>');
});
app.use('/', (req, res, next) => {
console.log('Third middleware');
res.send('<h1>Hello from Express!</h1>');
});
app.listen(3000);
localhost:3000/add-product
..当从 chrome/firefox 等调用时,会产生
First middleware
Second middleware
First middleware
Third middleware
在控制台中?
解决方案
最后有两个日志 -First
用于Third
请求favicon.ico
。当您在 处返回 html 字符串时/add-product
,浏览器会自动发出类似GET favicon.ico
.
如果你想阻止它,在第二个中间件处,返回一个 html 字符串,如:
res.send('<head><link rel="icon" href="data:,"></head><h1>The add-product page!</h1>');
推荐阅读
- vba - 格式化使用选择创建的标题。插入标题(Word VBA)
- r - 如何使用列中的非数值减去数据框中的数值列
- javascript - 使用 javascript 在多个页面中保持用户详细信息子集的安全
- excel - 如何进一步抓取网站?
- c++ - 如何将向量一的所有元素与向量二进行比较,如果存在最大元素,则将向量二的所有元素与向量三进行比较?
- excel - Lookup using multiple columns and values
- r - How can i check normality of some values in column with some confidence level in R
- encoding - 将 html 流从 c# webbrowser 加载到 htmlagilitypack 时编码错误
- ansible - Ansible 库存分组
- angular - 如何在其他函数中获取 deviceValue?