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-appmy-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. 배포
netlify deploy 명령어를 사용해 배포할 수 있다.
sh
netlify deploy --prodContext
Netlify의 Context는 c.env를 통해 접근할 수 있다:
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)