节点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

希望对您有所帮助:)