Netlify
Netlify 提供静态网站托管和无服务器(serverless)后端服务。Edge Functions 让我们可以让网页变得动态。
Edge Functions 支持使用 Deno 和 TypeScript 编写代码,并且可以通过 Netlify CLI 轻松部署。借助 Hono,你可以为 Netlify Edge Functions 创建应用。
1. 设置
Netlify 提供了一个快速启动模板。你可以通过 create-hono 命令启动项目。本示例选择 netlify 模板。
npm
npm create hono@latest my-app
yarn
yarn create hono my-app
pnpm
pnpm create hono my-app
bun
bun create hono@latest my-app
deno
deno init --npm hono my-app
进入 my-app 目录。
2. Hello World
编辑 netlify/edge-functions/index.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。
netlify dev
4. 部署
可以使用 netlify deploy 命令部署。
netlify deploy --prod
Context
你可以通过 c.env 访问 Netlify 的 Context:
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)
