请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

express中间件那节有个路径匹配的问题,导致结果输出有出入

app.use(’/api’, (req, res, next) => {
console.log(‘处理 /api 路由’)
next()
})

app.get(’/api’, (req, res, next) => {
console.log(‘get /api 路由’)
next()
})

app.post(’/api’, (req, res, next) => {
console.log(‘post /api 路由’)
next()
})

express-test mac$ node app.js
server is ok
请求开始… GET /api/get-cookie
处理 /api 路由
get /api/get-cookie

上面是老师上课时的代码的一部分,下面是浏览器访问localhost:3000/api/get-cookie输出的内容,看起来app.get(’/api’, (req, res, next) => {
console.log(‘get /api 路由’)
next()
})这个函数是没有命中的,老师上课时讲这个也会执行,跟老师上课讲的好像有点出入,包括后面老师带我们写的那个中间件原理分析的代码执行后,这个函数也输出了,麻烦老师解答下,谢谢啦

正在回答 回答被采纳积分+3

1回答

双越 2020-03-23 22:03:15

改成这样试试

app.get('/api/', (req, res, next) => { // '/api/' 后面多一个 /
    console.log(‘get /api 路由’)
    next()
})


0 回复 有任何疑惑可以回复我~
  • 提问者 慕的地5019507 #1
    这样试了下,也不行,所以我在想对于app.get()来说,是不是完全匹配才会执行?,因为上课的那个例子配的是/api,访问的是/api/get-cookie,
    这种情况这个中间件并没有执行,所以我现在有点疑惑了
    回复 有任何疑惑可以回复我~ 2020-03-24 01:05:49
  • 双越 回复 提问者 慕的地5019507 #2
    回顾了一下,因为记得也有其他同学提到过这个问题。应该是完全匹配才能被执行,课程中这块有疏漏。
    回复 有任何疑惑可以回复我~ 2020-03-24 08:58:05
  • 提问者 慕的地5019507 回复 双越 #3
    回复 双越
    好的,感谢老师解答
    回复 有任何疑惑可以回复我~ 2020-03-24 13:26:42
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信