跳转到正文

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-app
sh
yarn create hono my-app
sh
pnpm create hono my-app
sh
bun create hono@latest my-app
sh
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/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 dev

4. 部署 ​

可以使用 netlify deploy 命令部署。

sh
netlify deploy --prod

Context ​

可以通过 c.env 访问 Netlify 的 Context:

ts
import { Hono } from 'jsr:@hono/hono'
import { handle } from 'jsr:@hono/netlify'

// Import the type definition
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)

基于 MIT 许可证发布。