Guide
H3 应用实例
H3 应用实例是 h3 服务器的核心,负责处理传入请求。
你可以使用 new H3()
创建一个新的 h3 应用实例:
server.mjs
import { H3 } from "h3";
const app = new H3(/* 可选配置 */);
H3 应用选项
初始化应用时可以传入全局应用配置。
示例: 创建一个启用详细日志的应用。
const app = new H3({ debug: true });
全局钩子
初始化 h3 应用时,可以注册全局钩子:
onError
onRequest
onBeforeResponse
这些钩子会在每次请求时调用,可用于为你的应用添加全局逻辑,如日志记录、错误处理等。
const app = new H3({
onError: (error) => {
console.error(error);
},
onRequest: (event) => {
console.log("请求:", event.path);
},
});
H3 应用方法
app.fetch(request, init?, context?)
类似于 fetch 的 API,允许请求应用路由。
输入可以是 URL、相对路径或标准的 Request 对象。
返回值是一个标准的 Response,或者一个解析为 Response 的 Promise。
示例:
const response = await app.fetch("/");
console.log(response, await response.text());
app.handler(event)
一个兼容 h3 的事件处理程序,用于组合多个 h3 应用实例。
app.resolve(method, path)
通过方法和路径来解析路由处理器,适用于自定义场景。
app.on(method, route, handler)
为指定的 HTTP 方法注册路由处理器。
app.[method](route, handler)
为指定的 HTTP 方法注册路由处理器(app.on(method, ...)
的快捷方式)。
app.all(route, handler)
为所有 HTTP 方法注册路由处理器。
app.use(handler, opts?)
注册全局中间件处理器。
app.use(route, handler, opts?)
注册带路径的全局中间件处理器。
H3 应用属性
app.config
全局 h3 实例配置。
app.websocket
兼容 🔌 crossws 的 Websocket 钩子。