Deno Deno

在 Deno Deploy 中运行你的 h3 应用程序

你可以使用 Web 适配器 将 h3 应用程序直接托管到 Deno Deploy

使用

创建应用入口:

app.mjs
js
import { createApp, defineEventHandler } from 'h3'

export const app = createApp()

app.use(defineEventHandler(() => 'Hello world!'))

创建 Deno Deploy 条目:

deno.mjs
js
import { toWebHandler } from 'h3'
import { app } from './app.mjs'

Deno.serve(toWebHandler(app))

创建 import_map.json

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

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

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

要部署,请使用 deployctl deploy

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

WebSocket 支持

ts
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 演示以获取完整工作示例 (部署)。