Экспресс-роутер
Я использую экспресс-маршрутизатор в моем проекте, я столкнулся со следующей проблемой,
У меня есть 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 ---");
});