✅ 健康检查功能: - 实现完整的健康检查接口(/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文档功能测试
76 lines
2.1 KiB
Markdown
76 lines
2.1 KiB
Markdown
您询问的是 Elysia 的完整生命周期。
|
||
|
||
## 答案
|
||
|
||
Elysia 的完整生命周期包含以下阶段,按执行顺序排列:
|
||
|
||
### 1. start (服务器启动)
|
||
|
||
服务器启动时执行的钩子 [1](#3-0)
|
||
|
||
### 2. request (请求接收)
|
||
|
||
请求到达时最早执行的钩子,在路由匹配之前 [2](#3-1)
|
||
|
||
### 3. parse (请求体解析)
|
||
|
||
解析请求体内容,支持多种内容类型 [3](#3-2)
|
||
|
||
### 4. transform (上下文转换)
|
||
|
||
转换请求上下文,可以修改请求数据 [4](#3-3)
|
||
|
||
### 5. derive (派生上下文)
|
||
|
||
派生新的上下文属性,实际上是 transform 的子类型 [5](#3-4)
|
||
|
||
### 6. resolve (解析依赖)
|
||
|
||
解析依赖注入,实际上转换为 beforeHandle 钩子 [6](#3-5)
|
||
|
||
### 7. beforeHandle (处理前)
|
||
|
||
在主处理器执行前运行,可以进行验证和预处理 [7](#3-6)
|
||
|
||
### 8. handler (主处理器)
|
||
|
||
执行路由的主处理函数
|
||
|
||
### 9. afterHandle (处理后)
|
||
|
||
在主处理器执行后运行,可以修改响应 [8](#3-7)
|
||
|
||
### 10. mapResponse (响应映射)
|
||
|
||
将处理器返回值映射为 HTTP 响应 [9](#3-8)
|
||
|
||
### 11. afterResponse (响应后)
|
||
|
||
响应发送后执行,用于日志记录和清理 [10](#3-9)
|
||
|
||
### 12. error (错误处理)
|
||
|
||
在任何阶段发生错误时执行 [11](#3-10)
|
||
|
||
### 13. stop (服务器停止)
|
||
|
||
服务器关闭时执行的钩子 [12](#3-11)
|
||
|
||
### 生命周期执行流程
|
||
|
||
在 AOT 编译模式下,这些钩子会被编译成优化的 JavaScript 代码 [13](#3-12) 。在动态模式下,则通过运行时解释执行 [14](#3-13) 。
|
||
|
||
### trace (追踪)
|
||
|
||
贯穿整个生命周期的追踪系统,用于调试和监控 [15](#3-14)
|
||
|
||
## Notes
|
||
|
||
生命周期钩子支持不同的作用域(global、scoped、local),影响它们在插件间的继承行为。每个钩子都可以返回早期响应来短路后续处理流程。这个设计使得 Elysia 具有高度的可扩展性和灵活性。
|
||
|
||
Wiki pages you might want to explore:
|
||
|
||
- [Request Pipeline (elysiajs/elysia)](/wiki/elysiajs/elysia#2)
|
||
- [Routing (elysiajs/elysia)](/wiki/elysiajs/elysia#2.2)
|
||
- [Lifecycle Hooks (elysiajs/elysia)](/wiki/elysiajs/elysia#2.3)
|