# API 路由自动加载说明 ## 功能说明 路由加载器会自动扫描 `./api/` 目录下的所有 `routes*.ts` 文件,并根据文件路径和名称自动挂载到 Express 应用。 ## 目录结构规范 ``` api/ └── module/ └── user/ ├── routes.ts -> 挂载到 /api/user └── routes-admin.ts -> 挂载到 /api/user/admin ``` ## 路由挂载规则 ### 1. 基础路由 (routes.ts) - **文件路径**: `./api/module/user/routes.ts` - **挂载路径**: `/api/user` - **规则**: 使用父目录名称作为路由路径 ### 2. 子路由 (routes-xxx.ts) - **文件路径**: `./api/module/user/routes-admin.ts` - **挂载路径**: `/api/user/admin` - **规则**: `routes-` 后面的部分作为子路径 ## 路由文件编写规范 每个路由文件必须导出一个 Express Router 实例: ```typescript import express from "npm:express"; const router = express.Router(); // 定义路由 router.get("/", (req, res) => { res.json({ message: "Hello" }); }); // 必须使用 default export export default router; ``` ## 示例 ### 示例 1: 用户基础 API **文件**: `./api/module/user/routes.ts` ```typescript import express from "npm:express"; const router = express.Router(); // GET /api/user router.get("/", (req, res) => { res.json({ message: "User API" }); }); // GET /api/user/list router.get("/list", (req, res) => { res.json({ users: [] }); }); export default router; ``` ### 示例 2: 用户管理 API **文件**: `./api/module/user/routes-admin.ts` ```typescript import express from "npm:express"; const router = express.Router(); // GET /api/user/admin router.get("/", (req, res) => { res.json({ message: "Admin API" }); }); // POST /api/user/admin/create router.post("/create", (req, res) => { res.json({ message: "Create user" }); }); export default router; ``` ## 注意事项 1. **文件命名**: 必须以 `routes` 开头,扩展名为 `.ts` 2. **导出方式**: 必须使用 `export default` 导出路由 3. **目录结构**: 路由文件必须放在至少两级子目录下(如 `api/module/xxx/`) 4. **路径冲突**: 避免创建路径冲突的路由文件 ## 启动日志 服务器启动时会显示加载的路由信息: ``` 🔍 正在扫描路由文件... 📦 找到 2 个路由文件: ⏳ 加载: /api/user <- /path/to/api/module/user/routes.ts ✅ 已挂载: /api/user ⏳ 加载: /api/user/admin <- /path/to/api/module/user/routes-admin.ts ✅ 已挂载: /api/user/admin 🎉 路由加载完成! ``` ## 测试路由 启动服务器后,可以使用以下命令测试路由: ```bash # 测试基础路由 curl http://localhost:3000/api/user # 测试子路由 curl http://localhost:3000/api/user/admin # 测试具体接口 curl http://localhost:3000/api/user/list ```