文档Web 开发

用 Oak 构建后端

使用 Oak 的 Application、Router 与 middleware 模型构建 Deno 服务

Oak 提供类似 Koa/Express 的 middleware 与 context 模型,适合已有中间件思维或需要较完整路由层的 Deno 后端。

deno add jsr:@oak/oak
import { Application } from "jsr:@oak/oak/application";
import { Router } from "jsr:@oak/oak/router";

const app = new Application();
const router = new Router();

router.get("/health", (ctx) => {
  ctx.response.body = { ok: true };
});

app.use(async (ctx, next) => {
  const started = performance.now();
  await next();
  ctx.response.headers.set("server-timing", `app;dur=${performance.now() - started}`);
});
app.use(router.routes());
app.use(router.allowedMethods());

await app.listen({ port: 8000 });
deno run --allow-net=0.0.0.0:8000 main.ts

中间件顺序就是控制流:错误处理、request ID 与安全 header 通常放在路由之前;404 映射和审计日志需要覆盖下游结果。数据库连接不要挂在每个请求里重复创建。

Oak 与 Hono

  • 团队熟悉 Koa/Express、依赖 context mutation:Oak 更顺手。
  • 同一套 API 要跨 Deno、Workers、Bun、Node 且强调小体积:优先评估 Hono。
  • endpoint 很少:先用 Deno.serve

官方参考:oak on JSRRouter API

输入关键词搜索全部文档。