路由加载器会自动扫描 ./api/ 目录下的所有 routes*.ts 文件,并根据文件路径和名称自动挂载到 Express 应用。
api/
└── module/
└── user/
├── routes.ts -> 挂载到 /api/user
└── routes-admin.ts -> 挂载到 /api/user/admin
./api/module/user/routes.ts/api/user./api/module/user/routes-admin.ts/api/user/adminroutes- 后面的部分作为子路径每个路由文件必须导出一个 Express Router 实例:
import express from "npm:express";
const router = express.Router();
// 定义路由
router.get("/", (req, res) => {
res.json({ message: "Hello" });
});
// 必须使用 default export
export default router;
文件: ./api/module/user/routes.ts
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;
文件: ./api/module/user/routes-admin.ts
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;
routes 开头,扩展名为 .tsexport default 导出路由api/module/xxx/)服务器启动时会显示加载的路由信息:
🔍 正在扫描路由文件...
📦 找到 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
🎉 路由加载完成!
启动服务器后,可以使用以下命令测试路由:
# 测试基础路由
curl http://localhost:3000/api/user
# 测试子路由
curl http://localhost:3000/api/user/admin
# 测试具体接口
curl http://localhost:3000/api/user/list