Я создаю маршрутизаторы, используя koa. Мы объявили два маршрутизатора, как показано ниже.
app.get('/order/:id', async ctx => {
const { id } = ctx.params;
try {
const data = await order.findOne({
where: { order_id: id }
});
ctx.body = data;
} catch (e) {
ctx.body = e.message;
}
});
app.get('/order/customer', async ctx => {
const { id } = ctx.request.user;
try {
const data = await order.findOne({
where: { customer_id: id }
});
ctx.body = data;
} catch (e) {
ctx.body = e.message;
}
});
Первый — это запрос, который выбирает заказ по order_id, а второй — это запрос, который выбирает заказ пользователя с идентификатором, аутентифицированным промежуточным программным обеспечением.
curl http://localhost:3000/order/1
order_id равен 1, когда я набираю выше.
curl http://localhost:3000/order/customer
Однако, в отличие от моего намерения, когда я ввожу вышеизложенное и проверяю запрос, order_id называется customer. Есть ли способ сделать URL простым, чтобы сделать /order/customer доступным?
Если у вас есть какие-либо вопросы, которые мне не хватает в вопросе, или если вы можете мне помочь, пожалуйста, прокомментируйте или ответьте.



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


У вас проблема с порядком определения маршрутов. Сначала у вас должен быть конкретный путь, а затем динамический маршрут. Здесь динамический маршрут, который я имел в виду для /:id:
'/order/customer' // first
'/order/:id' // later
Это было просто. Спасибо за ответ.
Измените порядок маршрутов. Более конкретное должно стоять перед более общим.