Узлы: Маршрутизация без объявления типа - PullRequest
1 голос
/ 30 июня 2019

Я создаю маршрутизаторы, используя коа. Мы объявили два маршрутизатора, как показано ниже.

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 доступным?

Если у вас есть какие-либо вопросы, которых мне не хватает в этом вопросе, или если вы можете мне помочь, пожалуйста, прокомментируйте или ответьте.

1 Ответ

0 голосов
/ 30 июня 2019

У вас проблема с порядком определений маршрутов. Сначала вы должны указать конкретный маршрут, а затем динамический маршрут. Здесь динамический маршрут, который я имел в виду для /:id:

'/order/customer' // first
'/order/:id' // later
...