我正在尝试创建一条对不同前缀具有相同作用的路由:koa-router对同一组路由具有多个前缀:
/player/:id
/players/:id <- Same as above
/player/search
/players/search <- Same as above
这两种方法完全相同,为方便用户,给出了两次。
在Express中,获得此权限很容易,因为?
将使s
为可选:
router.use('/players?', ...);
在Koa中,这无效。
我尝试使用以下两个选项创建子路由器:
const router = new Router();
router.get('/:id', ...);
// And then:
const player = new Router();
player.use('/player', router.routes());
player.use('/players', router.routes());
但这实际上会注册:
players/player/:id
将.use
替换为.get
将忽略router.routes()
,并在没有/player
的情况下注册:id
。
有没有一种方法可以在不创建两个单独的路由器的情况下实现接受不同路由的路由器?