带方法HTTP路由
灵感:热门轻量库 rou3(Lightweight and fast router,radix3 后继)。
> 小四原创:METHOD + path → findRoute → 处理器载荷。
> 与「路径前缀树匹配」(radix3) 互补:那边偏菜单 path;这边带 HTTP 方法,适合 srvx mock。
何时使用
- 本地 mock API 按方法分发
- 轻量服务端路由表
- 需要
:id//**与 GET/POST 区分
硬约束
- 依赖:
rou3。 - 注册时带 method;查找时同 method。
- 实现要点注释标 小四原创。
- 不做完整中间件/鉴权框架(可用 h3)。
推荐实现
import { createRouter, addRoute, findRoute } from 'rou3'
export type Handler = { handle: (req: Request) => Response | Promise<Response> }
// 小四原创:带方法 HTTP 路由
export function createApiRouter() {
const router = createRouter<Handler>()
return {
on(method: string, path: string, handle: Handler['handle']) {
addRoute(router, method.toUpperCase(), path, { handle })
},
match(req: Request) {
const url = new URL(req.url)
return findRoute(router, req.method, url.pathname)
},
}
}
Agent 步骤
npm i rou3。- 用
createApiRouter注册 GET/POST,再接 srvxfetch。 - 自测:同 path 不同 method 命中不同处理器。
不要做
- 与 radix3 菜单 path 场景混用同一套文案/Skill。
- 用它硬扛完整 SPA 前端路由。
附加
- README.md · reference.md · templates/usage.md