关于中间件app.get('/api')不执行的问题(续问)
来源:10-5 express中间件
THEEND0123
2020-11-10
老师您好,以下问题我也遇到了,我看有很多人也提问了该问题。
您看应该是get、post这些方法,是不能直接匹配父路由的吧?只有app.use才行!
app.use('/api',(req,res,next)=>{
console.log('处理api路由')
next()
})
app.get('/api',(req,res,next)=>{
console.log('get /api路由')
next()
})
当我们访问http://localhost:3000/api/abc发出GET请求,app.use(’/api’)会执行,而app.get(’/api’)也会执行,但是实际上app.get(’/api’)不执行,只有在访问http://localhost:3000/api才会执行,请问这里是什么原因呢?
目前发现用 get 方法是要写准确的路径才可以匹配到,如果匹配 /api/get-cookie,路由不能写 /api 要写成 /api*,用上了通配符 *。use 方法没有这个问题。
写回答
2回答
-
THEEND0123
提问者
2020-11-12
小白想问一下有没有大神有答案啊?
00 -
双越
2020-11-11
这是路由匹配的问题。
一般情况下,日常项目开发中,使用精准匹配或者动态参数(如 /blogs/:id) ,就可以完全满足了。
00
相似问题