gpt4 book ai didi

javascript - ExpressJS - 如何跳转到下一个已定义初始 url 的中间件

转载 作者:行者123 更新时间:2023-12-02 23:07:02 24 4
gpt4 key购买 nike

示例代码:

app.use('/list-product', (req, res, next) => {
// Do stuff
next();
})

app.use('/add-product', (req, res, next) => {
console.log("I'm here")
})

不知何故,它没有记录“我在这里”,这意味着 next() 调用不起作用。

但是如果我将 '/add-product' 更改为 '/' 或者完全删除它,它就会起作用。这是为什么?

如何跳转到下一个具有初始 url 的中间件,如上面的示例所示?

最佳答案

听起来您不太明白,当您在中间件前面放置路径时,URL 必须至少与该路径部分匹配,才能调用该中间件。

因此,当您对 /list-product 发出请求时,它将与您的 /list-product 中间件匹配,然后该中间件将调用 next()。这将继续在中间件链上寻找与 /list-product 路径匹配的其他中间件处理程序。当它到达 /add-product 的下一个中间件时,它与 /list-product 不匹配,因此会被跳过(未调用)。

如果将 app.use('/add-product', ...) 更改为 app.use('/', ...)app.use(...) 没有路径,那么最后两个与 /list-product 匹配,因此它们将被调用。 / 中间件是部分匹配(对于所有 URL),并且将为所有 URL 调用没有路径的中间件。 app.use() 运行部分匹配。 app.get()app.post() 等更具体的请求处理程序需要更完整的匹配。

关于javascript - ExpressJS - 如何跳转到下一个已定义初始 url 的中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57541455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com