Я практикую node.js и express.js, пишу случайные вещи. Поэтому после того, как я написал метод get с параметрами, он заблокировал запуск другого метода get. Я хотел бы знать, почему.
Я уверен, что это из-за 1-го метода. Я удалил его и переместил после второго, и это сработало просто отлично. Но когда это до 2-го, он заблокировал его.
// the following code is the one that blocks
app.get("/animes/:id", (req, res)=>{
res.send(animes[req.params.id]);
});
app.get("/animes/add", (req, res)=>{
console.info(req.query);
res.send("yes")
});
// the following code works fine
app.get("/animes/add", (req, res)=>{
console.info(req.query);
res.send("yes")
});
app.get("/animes/:id", (req, res)=>{
res.send(animes[req.params.id]);
});
У меня есть два других метода get с такими маршрутами, как "/" и "animes". Я уверен, что они не являются причиной блокировки.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


ПО промежуточного слоя оцениваются в порядке их регистрации.
Таким образом, для:
app.get("/animes/:id", ... )
app.get("/animes/add", ... )
Express сначала проверит, соответствует ли запрошенный URL-адрес /animes/:id, а /animes/:id будет соответствовать /animes/add, промежуточное программное обеспечение, зарегистрированное в app.get("/animes/add", ... ), никогда не будет доступно.
В вашем первом примере первый маршрут "/animes/:id" совпадает, если вы вызываете "animes/add". В этом случае «добавить» будет параметром id. второй маршрут будет проигнорирован.