上下文
H1
上下文(Context)是一个包含与当前请求相关的信息和有用方法的对象。不同请求之间的上下文实例是不同的。
上下文内容
名称 | 目的 | 条件 |
---|---|---|
context.logger | 用于记录日志的日志器对象 | 始终存在 |
context.executeId | 当前请求的唯一标识符 | 始终存在 |
context.headers | 当前请求的头部信息 | 始终存在 |
context.path | 当前请求的路径 | 始终存在 |
context.detail.request | 当前的 HTTP 请求对象 | 仅在通过 HTTP 调用时存在 |
context.detail.response | 当前的 HTTP 响应对象 | 仅在通过 HTTP 调用时存在 |
context.detail.ip | 当前请求的 IP 地址 | 仅在通过 HTTP 调用时存在 |
context.detail.fullurl | 当前请求的真实 URL 对象 | 仅在通过 HTTP 调用时存在 |
详情
context.detail
中的内容并非在所有环境中都存在。通常,这些内容仅在 HTTP 执行期间可用。最常见的情况是,在测试期间此内容不存在,只存在于真实的 HTTP 请求中。
扩展上下文
你也可以扩展上下文。你可以将其视为在请求之间共享的类似于 “globalThis” 的对象。例如,你可以在 中间件 中读取用户数据,并将其附加到 context.user
上。然后,在你的 API 中,你可以通过 context.user
直接访问当前用户的信息。
另外,不要忘记编辑 /src/context.ts
文件,为扩展的上下文添加类型!请注意,扩展上下文类型并不意味着数据实际存在于上下文中。除了上下文的默认属性外,你需要编写代码将数据附加到上下文中。