Netlify

توفر Netlify استضافة للمواقع الثابتة وخدمات خلفية (backend) بدون خادم (serverless). Edge Functions يمكّننا من جعل صفحات الويب ديناميكية.

تدعم Edge Functions الكتابة بلغتي Deno و TypeScript، ويتم تسهيل النشر من خلال Netlify CLI. باستخدام Hono، يمكنك إنشاء التطبيق لدوال Netlify Edge Functions.

1. الإعداد

يتوفر قالب بداية لـ Netlify. ابدأ مشروعك باستخدام الأمر "create-hono". اختر netlify قالب لهذا المثال.

npm create hono@latest my-app
yarn create hono my-app
pnpm create hono my-app
bun create hono@latest my-app
deno init --npm hono my-app

انتقل إلى my-app.

2. مرحبًا بالعالم

تعديل netlify/edge-functions/index.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 في متصفح الويب الخاص بك.

netlify dev

4. النشر

يمكنك النشر باستخدام netlify deploy الأمر.

netlify deploy --prod

Context

يمكنك الوصول إلى خاصية Netlify Context عبر c.env:

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)