koa-router如何匹配任意路径

UNDERCOVERj
  • 118

clipboard.png

我想这一块匹配上面没有匹配到的所有路由,可是我这样的做法并没有什么乱用。

刚开始使用,希望有人指点一下,谢谢

回复
阅读 6.2k
2 个回答

使用 * 或 use

router.get('*', ...)

app.use(...)

koa-router 的 README 里有说明,"Route paths will be translated to regular expressions using path-to-regexp"

使用 router.get('/(.*)')

可以用这个工具测试 route express-route-tester


看你的代码,是想将不支持的 url 都转到错误页去。
一般的做法是写个 koa 的中间件,去处理 404,而不是写个 route 去涵盖“不支持的 url”

app.use(router.routes(), router.allowedMethods())

// handle 404 etc.
app.use(async (ctx, next) => {
  try {
    await next()
    if (ctx.status === 404) {
      // do somthing here
    }
  } catch (err) {
    // handle error
  }
})
宣传栏