cursor-init/docs/life.md
expressgy 2ee70e5d42 feat: 完成健康检查接口和Swagger文档完善
 健康检查功能:
- 实现完整的健康检查接口(/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文档功能测试
2025-06-28 22:09:02 +08:00

2.1 KiB
Raw Permalink Blame History

您询问的是 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: