节点JS中的Express路由调用两条路由
Express route in node JS invokes two routes
我的项目中有以下几种路线
router.get('/new', async function(req,res){
});
router.get('/:id', async function (req, res) {
});
当我从 post-man 调用 /new
路由时,两条路由都在执行。首先路由 /new
被执行,然后带有 /:id
的路由也被调用。我不明白为什么它会混淆并触发两条路线。请帮忙。提前致谢。
这是因为两个端点的路由结构相同。当您定义路由 /:id
时,它会在路由中接受一些 X
值。现在,当您将 other 定义为 /new
时,express 会将 new
视为 X
的值并调用该路由。解决方法是更改其中一条路线的结构。您应该遵循休息模式以避免此类问题。您可以阅读 here
希望对您有所帮助:)
我的项目中有以下几种路线
router.get('/new', async function(req,res){
});
router.get('/:id', async function (req, res) {
});
当我从 post-man 调用 /new
路由时,两条路由都在执行。首先路由 /new
被执行,然后带有 /:id
的路由也被调用。我不明白为什么它会混淆并触发两条路线。请帮忙。提前致谢。
这是因为两个端点的路由结构相同。当您定义路由 /:id
时,它会在路由中接受一些 X
值。现在,当您将 other 定义为 /new
时,express 会将 new
视为 X
的值并调用该路由。解决方法是更改其中一条路线的结构。您应该遵循休息模式以避免此类问题。您可以阅读 here
希望对您有所帮助:)