我正在尝试创建一个对不同前缀具有相同作用的路由:对于同一组路由具有多个前缀的 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
。
有没有办法在不创建两个单独的路由器的情况下实现一个接受不同路由的路由器?