入门指南
h3 入门指南
概览
h3(HTTP 的缩写,发音为 /eɪtʃθriː/,类似于 h-3)是一个轻量级、极速且可组合的基于 Web 标准、适用于任何 JavaScript 运行时的 JavaScript 服务器框架。
你正在阅读的是 h3 版本 2(候选发布版)的文档。
查看功能完善的服务器工具包 Nitro。
快速开始
安装 h3
作为依赖:
npm i h3
创建一个新文件 server.mjs
:
server.mjs
import { H3, serve } from "h3";
const app = new H3();
app.get("/", () => "⚡️ Tadaa!");
serve(app, { port: 3000 });
然后,使用你喜欢的运行时启动服务器:
node --watch ./server.mjs
就这样!我们的本地 Web 服务器已经运行。
发生了什么?
好,现在我们来解析这个 hello world 示例。
我们首先使用 new H3()
创建一个 h3 应用实例:
const app = new H3(/* 可选配置 */);
app
是一个小巧的服务器,能够匹配路由、生成响应并处理生命周期钩子,例如错误处理。
然后我们创建并注册一个路由,用来处理指向 /
路径的 HTTP GET 请求。
app.get("/", () => {
return { message: "⚡️ Tadaa!" };
});
路由功能由 🌳 rou3 提供支持,这是一款超快且轻量的路由匹配引擎。
在 h3 事件处理函数中,你只需简单地返回内容即可生成响应!响应可以是简单的 字符串、JSON 对象、二进制数据、流、错误... 或标准的 Web Response。
最后,我们使用 serve
方法启动服务器监听。
通过 CDN 使用
你可以直接从 CDN 导入 h3。此方法适用于 Bun、Deno 以及其他运行时,例如 Cloudflare Workers(需要适配器)。
import { H3, toWebHandler } from "https://esm.sh/h3";
const app = new H3();
export const fetch = app.fetch;
运行及部署
通过 serve(app, options?)
,你可以轻松在 Deno、Node.js 和 Bun 运行时中运行 h3 应用。
主要的 h3 应用实例提供了 app.fetch
,可直接用于在任何兼容 Web 的运行时中运行 h3 应用,甚至可直接调用它进行测试。
test.mjs
import { H3, serve } from "h3";
const app = new H3().get("/", () => "⚡️ Tadaa!");
// 无需监听即可测试
const response = await app.fetch("/");
console.log(await response.text());
为了零配置即可部署到各大提供商,我们推荐使用 Nitro。