【发布时间】:2020-10-05 15:23:25
【问题描述】:
我有这条路线,/test,我调用了它,但不知何故,当在/test 路线最后调用 next() 时,它也触发了 /:async 路线?
router.post('/test/:value?'async (req, res: express.Response, next: express.NextFunction) => {|
try{
//code
}catch(err){
//log error
}finally{
next();
}
})
router.post('/:id?'async (req, res: express.Response, next: express.NextFunction) => {
try{
//code
}catch(err){
//log error
}finally{
next();
}
})
我在 server.ts 文件中有这个 finalResponseHandler 中间件,它应该在 next() 上调用。
app.use(finalResponseHandler);
如果我删除 /:id? 路由 finalResponseHandler 中间件被完美调用。
为什么调用这个 /:id 路由而不是 finalResponseHandler 中间件?
如何更正此问题以在调用“/test”路由时不调用/:id 路由。
感谢任何帮助。
【问题讨论】:
标签: javascript node.js express routes express-router