首页 > 解决方案 > 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

在控制台中?

标签: node.jsexpress

解决方案


最后有两个日志 -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>');

推荐阅读