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
bunx create-hono my-app
sh
deno run -A npm:create-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を使用して開発サーバーを実行します。その後、Webブラウザでhttps://#:8888
にアクセスします。
sh
netlify dev
4. デプロイ
netlify deploy
コマンドでデプロイできます。
sh
netlify deploy --prod
Context
NetlifyのContext
にはc.env
を通してアクセスできます。
ts
import { Hono } from 'jsr:@hono/hono'
import { handle } from 'jsr:@hono/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)