为什么get()在express.js中成功处理请求后,use()方法仍在执行?

为什么get()在express.js中成功处理请求后,use()方法仍在执行?,express,routes,Express,Routes,我有这个express.js代码: app.get('/', (req, res) => { res.render('homePage', { title: 'Express' }); }); app.use((req, res) => { console.log('use() is executed'); res.end(); }); 如果请求由get()方法处理,则不应执行use()。但我注意到,

我有这个express.js代码:

    app.get('/', (req, res) => {
        res.render('homePage', { title: 'Express' });
    });

    app.use((req, res) => {
        console.log('use() is executed');
        res.end();
    });
如果请求由
get()
方法处理,则不应执行
use()
。但我注意到,即使一切正常,页面被呈现,它仍然会执行。我做错了什么还是错过了什么?谢谢。

来自快递文件: 链接:
app.use([path,]callback[,callback…])
在指定路径上装载指定的中间件函数:当请求路径的基与路径匹配时,执行中间件函数

app.use()
将函数注册为中间件,但您没有指定路径。这就是为什么每次调用任何路由时它都会运行。
中间件的放置将改变执行顺序。但是,它们不会改变这样一个事实,即中间件将作为中间件执行,中间件将在路由中的实际功能之前执行。

是的,但它不应该捕获
'\'
路由,因为它已经由
app.get()处理
一些将作用于路由的中间件实际上是在实际路由的代码之后注册的,因此它可以访问路由的所有属性。只要它是一个中间件。它将在调用路由时执行。我已经更新了我的答案。我没有意识到这一点。谢谢。