运行时与 HTTP
运行 TypeScript、使用 Web API、启动 HTTP 服务并管理生命周期
运行文件与任务
deno run main.ts
deno run --watch --allow-net main.ts
deno task dev
deno run 适合直接执行入口;deno task 适合把参数和权限固化到 deno.json。对团队项目,优先让 README 和 CI 调用 task,避免每个人记一组不同参数。
使用 Web 标准 API
const controller = new AbortController();
Deno.serve({ port: 8000, signal: controller.signal }, (request) => {
const url = new URL(request.url);
if (url.pathname === "/health") return Response.json({ ok: true });
return new Response("Not found", { status: 404 });
});
Deno.addSignalListener("SIGTERM", () => controller.abort());
deno run --allow-net main.ts
请求与响应使用标准 Request、Response、URL、Streams 和 fetch。Deno.serve 负责监听;它不是完整的认证、限流或部署平台。
环境变量与退出
const port = Number(Deno.env.get("PORT") ?? "8000");
if (!Number.isInteger(port)) throw new Error("PORT must be an integer");
只授予需要的变量:--allow-env=PORT。进程退出码、未处理异常和信号处理必须在部署前用目标环境验证。
官方参考:Run code、HTTP server。