# Deno Web 开发

先从需求选择层级，不要因为“做 Web”就默认安装全栈框架。

| 方案 | 定位 | 适合 | 不适合 |
| --- | --- | --- | --- |
| `Deno.serve` | Web 标准 HTTP 原语 | webhook、小 API、代理 | 大量路由和业务中间件 |
| Fresh 2 | Deno-first 全栈 SSR | 内容、电商、CRUD、渐进交互 | 纯客户端 SPA |
| Hono | 跨 runtime 轻量 Web 框架 | REST、Edge、可移植 API | 强约定全栈页面 |
| Oak | Express/Koa 风格中间件 | Deno 后端、熟悉 middleware 的团队 | 追求最小跨平台 bundle |
| Lume | Deno 静态站生成器 | 文档、博客、内容站 | 动态业务后台 |

Aleph.js 曾是 Deno React SSR 的重要探索，但新项目应先检查其当前发布、维护状态和目标 runtime；不要仅凭历史文章把它列为默认方案。

## 最小 HTTP 服务

```ts
Deno.serve({ port: 8000 }, (request) => {
  const url = new URL(request.url);
  if (url.pathname === "/health") return Response.json({ ok: true });
  return new Response("Not found", { status: 404 });
});
```

```bash
deno run --allow-net=0.0.0.0:8000 main.ts
```

## 选择规则

- 页面以服务端 HTML 为主、局部交互：Fresh。
- API 要同时部署到 Deno、Workers、Bun 或 Node：Hono。
- 团队偏好 middleware/context 模型：Oak。
- 只有少量 endpoint：保持 `Deno.serve`，少一层抽象。

接下来：[Fresh](/docs/web/fresh)、[Hono](/docs/web/hono)、[Oak](/docs/web/oak)、[Lume](/docs/web/lume)、[数据库](/docs/database)。
