Экспресс-роутер

Я использую экспресс-маршрутизатор в моем проекте, я столкнулся со следующей проблемой,

У меня есть 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 перестанет работать. Но / пользователь / список API работает

Пожалуйста, дайте мне знать, если я делаю что-то не так. Спасибо!

1 ответ

Решение

Проблема не в регулярных выражениях, но. Измените порядок определения маршрута, чтобы динамические маршруты были внизу. Смотрите код ниже

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

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

Другие вопросы по тегам