You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Hono框架中获取所有已注册的路由列表?

获取Hono已注册路由列表的方法

Hono官方文档确实没有提供类似Hapi table()或Fastify路由打印插件的公开API,但可以通过访问Hono实例的内部属性提取路由信息,以下是具体实现方式:

1. 直接读取内部路由存储

Hono的路由信息存在实例的router属性下,可直接访问获取:

import { Hono } from 'hono'

const app = new Hono()

// 注册测试路由
app.get('/hello', (c) => c.text('Hello'))
app.post('/api/users', (c) => c.json({ ok: true }))
app.put('/api/users/:id', (c) => c.json({ id: c.req.param('id') }))

// 获取并打印路由列表
const routes = app.router.routes
routes.forEach(route => {
  console.log(`${route.method} ${route.path}`)
})

2. 封装成工具函数复用

如果需要频繁使用,可封装成工具函数简化调用:

function getHonoRoutes(app) {
  return app.router.routes.map(route => ({
    method: route.method,
    path: route.path,
    handlerName: route.handler.name || '匿名处理器'
  }))
}

// 使用示例
const allRoutes = getHonoRoutes(app)
console.table(allRoutes)

注意事项

  • 这是非公开内部API,Hono的内部实现可能随版本迭代变更,使用时需注意版本兼容性。
  • 若需要更稳定的方案,可关注Hono官方仓库,提交功能请求推动官方推出正式的路由列表API。

内容的提问来源于stack exchange,提问作者Harshal Patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 14:45:54