# 入门指南
> 开始使用 H3。
您当前正在阅读 H3 版本 2 文档。请访问 [v1.h3.dev](https://v1.h3.dev/) 查看旧版文档。
## 概览
⚡ H3(简称 H(TTP),发音为 /eɪtʃθriː/,类似 h-3)是一个轻量、快速、可组合的服务器框架,适用于现代 JavaScript 运行时。它基于网页标准原语,如 [Request](https://developer.mozilla.org/en-US/docs/Web/API/Request)、[Response](https://developer.mozilla.org/en-US/docs/Web/API/Response)、[URL](https://developer.mozilla.org/en-US/docs/Web/API/URL) 和 [Headers](https://developer.mozilla.org/en-US/docs/Web/API/Headers)。你可以将 H3 集成到任何兼容的运行时,或者将其他支持 web 的处理器[挂载](/guide/api/h3#h3mount)到 H3,几乎不会带来额外延迟。
H3 设计为可扩展且可组合。它不提供一个庞大的核心,而是从一个轻量的 [H3 实例](/guide/api/h3) 开始,然后导入内置的、支持摇树优化的 [实用工具](/utils),或者自定义引入更多功能。
可组合工具拥有多个优点:
- 服务器只包含使用到的代码,并在需要的位置运行。
- 应用体积可更好地扩展。工具使用显式且清晰,减少全局影响。
- H3 采用极简设计,不会限制你的选择。
所有实用工具共享一个 [H3Event](/guide/api/h3event) 上下文。
## 快速开始
您可以在 [⚡️ Stackblitz](https://stackblitz.com/github/h3js/h3/tree/main/playground?file=server.mjs) 上在线尝试 H3。
安装 `h3` 作为依赖:
创建一个新文件作为服务器入口:
```ts [server.mjs]
import { H3, serve } from "h3";
const app = new H3().get("/", (event) => "⚡️ Tadaa!");
serve(app, { port: 3000 });
```
然后,使用你喜欢的运行时运行服务器:
```bash [node]
node --watch ./server.mjs
```
```bash [deno]
deno run -A --watch ./server.mjs
```
```bash [bun]
bun run --watch server.mjs
```
就这样!本地就运行起了一个 Web 服务器。
### 这发生了什么?
现在,让我们解析一下这个 hello world 示例。
我们首先用 `new H3()` 创建了一个 [H3](/guide/api/h3) 应用实例:
```ts
const app = new H3();
```
[H3](/guide/api/h3) 是一个小型类,具备[匹配路由](/guide/basics/routing)、[生成响应](/guide/basics/response)和调用[中间件](/guide/basics/middleware)及[全局钩子](/guide/api/h3#global-hooks)的能力。
接着我们添加了一个路由,用于处理 `/` 路径的 HTTP GET 请求。
```ts
app.get("/", (event) => {
return { message: "⚡️ Tadaa!" };
});
```
我们直接返回了一个对象。H3 会自动将值[转换](/guide/basics/response#response-types)为网页响应。
最后,我们使用 `serve` 方法启动服务器监听。利用 `serve` 方法,你可以轻松地在多种运行时中启动一个 H3 服务器。
```js
serve(app, { port: 3000 });
```
`serve` 方法由 [💥 srvx](https://srvx.h3.dev/) 提供支持,Srvx 是一个基于 Web 标准的运行时无关通用服务器监听器,能无缝兼容 [Deno](https://deno.com/)、[Node.js](https://nodejs.org/) 和 [Bun](https://bun.sh/)。
我们还有 [`app.fetch`](/guide/api/h3#h3fetch),可以直接在任何支持 Web 的运行时中运行 H3 应用,甚至可直接调用进行测试。
```js
import { H3, serve } from "h3";
const app = new H3().get("/", () => "⚡️ Tadaa!");
// 无需监听即可测试
const response = await app.request("/");
console.log(await response.text());
```
你也可以直接从 CDN 导入 `h3` 库。此方法适用于 Bun、Deno 及 Cloudflare Workers 等其他运行时。
```js
import { H3 } from "https://esm.sh/h3";
const app = new H3().get("/", () => "⚡️ Tadaa!");
export const fetch = app.fetch;
```