Netlify
Netlify 提供静态网站托管与无服务器后端服务。Edge Functions 可以让页面具备动态能力。
Edge Functions 支持使用 Deno 与 TypeScript 编写,并可通过 Netlify CLI 轻松部署。借助 Hono,你可以为 Netlify Edge Functions 构建应用。
1. 环境准备
Netlify 提供了启动模板,可通过 create-hono 命令初始化项目。本示例选择 netlify 模板。
sh
npm create hono@latest my-appsh
yarn create hono my-appsh
pnpm create hono my-appsh
bun create hono@latest my-appsh
deno init --npm hono my-app进入 my-app 目录。
2. Hello World
编辑 netlify/edge-functions/index.ts:
ts
import { Hono } from 'jsr:@hono/hono'
import { handle } from 'jsr:@hono/hono/netlify'
const app = new Hono()
app.get('/', (c) => {
return c.text('Hello Hono!')
})
export default handle(app)3. 运行
使用 Netlify CLI 启动开发服务器,并访问 http://localhost:8888:
sh
netlify dev4. 部署
通过以下命令即可部署:
sh
netlify deploy --prodContext
可以通过 c.env 访问 Netlify 的 Context:
ts
import { Hono } from 'jsr:@hono/hono'
import { handle } from 'jsr:@hono/hono/netlify'
// 引入类型定义
import type { Context } from 'https://edge.netlify.com/'
export type Env = {
Bindings: {
context: Context
}
}
const app = new Hono<Env>()
app.get('/country', (c) =>
c.json({
'You are in': c.env.context.geo.country?.name,
})
)
export default handle(app)