0

我在我的项目中使用快速路由器,我面临以下问题,

我有2条路线如下

router.get("/user/:id", (req, res) => {
  console.log("---- ABCD ---");
});

router.get("/user/list", (req, res) => {
  console.log("---- PQRS ---");
});

当我调用http://localhost:3000/user/list api 时,ABCD 打印在控制台而不是 PQRS 中。

我知道我们可以在路由器中编写正则表达式来处理这种情况。我尝试使用以下代码。

router.get("/user/:id(!list$)", (req, res) => {
   console.log("----- ABCD ----");
}

进行此更改后,/user/:id api 停止工作。但是 /user/list api 正在工作

请让我知道,如果我做错了什么。谢谢!

4

1 回答 1

1

问题不在于正则表达式,而是。重新排序您的路由定义,使动态路由位于底部。请参阅下面的代码

router.get("/user/list", (req, res) => {
  console.log("---- PQRS ---");
});

router.get("/user/:id", (req, res) => {
  console.log("---- ABCD ---");
});

于 2018-01-17T15:33:42.813 回答