【发布时间】:2019-06-30 05:38:01
【问题描述】:
我正在使用 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选择订单的查询,第二个是通过中间件认证的id选择用户订单的查询。
curl http://localhost:3000/order/1
当我在上面输入时,order_id 为 1。
curl http://localhost:3000/order/customer
但是,与我的意图不同,当我输入上述内容并检查查询时,order_id 称为customer。有什么方法可以让 url 变得简单,让/order/customer 可用?
如果您有任何我在问题中遗漏的问题,或者您可以帮助我,请发表评论或回复。
【问题讨论】:
-
切换路由的顺序。更具体的应该在更一般的之前。
标签: javascript node.js routes koa