Guide

事件对象

事件对象承载一个传入的请求和上下文。

每当一个新的 HTTP 请求到达时,h3 在内部创建一个事件对象,并通过事件处理器传递,直到发送响应。

事件会在所有生命周期钩子和可组合工具中传递,以便使用它作为上下文。

示例:

import { getQuery, readJSONBody } from "h3";

app.use(async (event) => {
  // 记录事件。`.toString()` 将转换为一个简单字符串,如 `[GET] /<path>`
  console.log(`请求: ${event.toString()}`);

  // 解析查询参数
  const query = getQuery(event);

  // 尝试读取请求体
  const body = await readJSONBody(event).catch(() => {});

  // 将请求回显为响应
  return {
    path: event.path,
    method: event.method,
    query,
    body,
  };
});

属性

事件的主要属性包括:

event.method

访问规范化的(大写)请求 方法

event.path

访问请求路径。(示例: /test?test=123)

event.headers

访问规范化的请求 头部

event.context

上下文是一个对象,包含有关请求的任意信息。 你可以在 event.context 中存储自定义属性,以便在可组合工具中共享。

  • context 包含有关请求的一些上下文信息。
  • headers 具有请求头的 规范化版本
  • handled 是一个布尔值,指示请求是否已经结束。

!提示 你也可以使用 getRequestHeaders(event)getRequestHeader(event, name) 来获取简化界面。