Adapters

Deno

在 Deno Deploy 中运行你的 h3 应用

你可以使用 Web Adapter 将你的 h3 应用直接托管到 Deno Deploy

使用方法

创建应用入口:

app.mjs
import { createApp } from "h3";

export const app = createApp();

app.use(() => "Hello world!");

为 Deno Deploy 创建入口:

deno.mjs
import { toWebHandler } from "h3";
import { app } from "./app.mjs";

Deno.serve(toWebHandler(app));

创建一个 import_map.json

import_map.json
{
  "imports": {
    "h3": "https://esm.sh/h3@latest"
  }
}

最后,使用 deno run 进行本地预览:

terminal
deno run --allow-net ./deno.mjs

要部署,请使用 deployctl deploy

terminal
deployctl deploy --prod --exclude=node_modules --import-map=./import_map.json ./deno.mjs

WebSocket 支持

Read more in crossws.unjs.io/adapters/deno.
import wsAdapter from "crossws/adapters/deno";

const handler = toWebHandler(app);

const { handleUpgrade } = wsAdapter(app.websocket);

Deno.serve((request) => {
  if (request.headers.get("upgrade") === "websocket") {
    return handleUpgrade(request);
  }
  return handler(request);
});

查看 pi0/h3-on-edge 演示,以获取完整的工作示例(部署)。