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