跳转至内容
There is a version suitable for your browser's language settings. Would you like to go to the english language of the site?
主页文档

上下文

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 文件,为扩展的上下文添加类型!请注意,扩展上下文类型并不意味着数据实际存在于上下文中。除了上下文的默认属性外,你需要编写代码将数据附加到上下文中。

/src/context.ts
import type { MilkioContext } from "milkio";
export type Context = {
// 添加用户信息类型
user: {
id: string;
name: string;
email: string;
};
// ...
} & MilkioContext;