✅ 健康检查功能: - 实现完整的健康检查接口(/api/health, /api/health/detailed) - 支持MySQL和Redis依赖状态检查 - 包含系统信息、性能指标监控 - 修复this上下文问题,确保服务方法正常调用 - 添加全面的健康检查测试用例 📝 Swagger文档优化: - 创建全局响应Schema定义和错误码说明 - 完善API文档,包含详细的错误码表格 - 添加JWT认证说明和响应格式示例 - 增加全局组件、响应模板和示例 - 创建Swagger文档功能测试 🎯 任务完成: - ✅ 5.0 健康检查接口 - 实现系统和依赖健康状态监控 - ✅ 7.0 Swagger文档完善 - 增加全局响应示例和错误码说明 📁 新增文件: - src/controllers/health.controller.ts - 健康检查控制器 - src/services/health.service.ts - 健康检查服务层 - src/type/health.type.ts - 健康检查类型定义 - src/validators/health.response.ts - 健康检查响应验证 - src/validators/global.response.ts - 全局响应Schema定义 - src/tests/health.test.ts - 健康检查功能测试 - src/tests/redis.test.ts - Redis连接测试 - src/tests/swagger.test.ts - Swagger文档功能测试
2.1 KiB
2.1 KiB
您询问的是 Elysia 的完整生命周期。
答案
Elysia 的完整生命周期包含以下阶段,按执行顺序排列:
1. start (服务器启动)
服务器启动时执行的钩子 1
2. request (请求接收)
请求到达时最早执行的钩子,在路由匹配之前 2
3. parse (请求体解析)
解析请求体内容,支持多种内容类型 3
4. transform (上下文转换)
转换请求上下文,可以修改请求数据 4
5. derive (派生上下文)
派生新的上下文属性,实际上是 transform 的子类型 5
6. resolve (解析依赖)
解析依赖注入,实际上转换为 beforeHandle 钩子 6
7. beforeHandle (处理前)
在主处理器执行前运行,可以进行验证和预处理 7
8. handler (主处理器)
执行路由的主处理函数
9. afterHandle (处理后)
在主处理器执行后运行,可以修改响应 8
10. mapResponse (响应映射)
将处理器返回值映射为 HTTP 响应 9
11. afterResponse (响应后)
响应发送后执行,用于日志记录和清理 10
12. error (错误处理)
在任何阶段发生错误时执行 11
13. stop (服务器停止)
服务器关闭时执行的钩子 12
生命周期执行流程
在 AOT 编译模式下,这些钩子会被编译成优化的 JavaScript 代码 13 。在动态模式下,则通过运行时解释执行 14 。
trace (追踪)
贯穿整个生命周期的追踪系统,用于调试和监控 15
Notes
生命周期钩子支持不同的作用域(global、scoped、local),影响它们在插件间的继承行为。每个钩子都可以返回早期响应来短路后续处理流程。这个设计使得 Elysia 具有高度的可扩展性和灵活性。
Wiki pages you might want to explore: