Web 框架 Hono 火了?Web 應用第一選擇?
Hello,大家好,我是 Sunday。
今天咱們來看一下新的 web 框架 Hono。
什麼是 Hono
Hono-[炎] 是一個小型、簡單而極快的 Edges Web 框架。它適用於各種 JavaScript 運行環境,包括 Cloudflare Workers、Fastly Compute、Deno、Bun、Vercel、Lagon、AWS Lambda、Lambda@Edge 和 Node.js。
相對於 itty-router、sunder、worktop 等其他框架,Hono 突出的特點在於其速度,但這並不是它唯一的亮點。可以總結爲以下幾個關鍵點:
-
超快速度:藉助路由 RegExpRouter,它的速度非常快,無需線性循環。
-
輕量級:hono/tiny 預設 preset 小於 12kB,零依賴,僅使用 Web 標準 API。
-
多平臺支持:適用於多種平臺,包括 Cloudflare Workers、Fastly Compute、Deno、Bun、Lagon、AWS Lambda、Lambda@Edge 和 Node.js,同一份代碼適用於所有平臺。
-
內置功能:Hono 具備內置中間件、自定義中間件和第三方中間件,方便直接使用。
-
優秀應用案例:Hono 已被廣泛運用,比如:
-
Cdnjs API Server:基於 Hono 的 Cloudflare Workers 免費開源 CDN 服務。
-
Polyfill.io:提供瀏覽器 polyfill 的 CDN 服務,基於 Hono 核心服務器。
-
Ultra:React/Deno 應用框架,內部服務器採用 Hono。
-
Deno Benchmarks:用於基準測試的 Deno,採用基於 V8 的安全 TypeScript 運行時,其中用到了 Hono。
-
Cloudflare Blog:部分文章託管在基於 Hono 的 Cloudflare Workers 平臺。
目前,Hono 在 Github 上以 MIT 協議開源,擁有超過 8.9k 星標、3.3k 個項目依賴,並有來自 100 多位貢獻者的代碼貢獻。這是一個值得關注的前端開源項目。
如何使用 Hono
Hono 是一個類似於 Express 的簡單 Web 應用程序框架,專爲在 CDN Edge 上運行而設計。它允許開發者利用中間件構建更強大的應用程序。以下是一些典型的應用場景:
-
構建 Web API
-
後端服務器的代理
-
CDN 前端
-
邊緣應用
-
基於庫的服務器
-
全棧應用
開發者可以使用 Cloudflare Workers 開發工具 Wrangler、Deno、Bun 或其他工具,在 TypeScript 中編寫代碼並自動進行轉譯。
下面是在 src/index.ts
中使用 Hono 編寫的第一個應用程序。 導入和最終導出的默認部分可能因運行時而異,但應用程序代碼能在任何運行時運行。
import { Hono } from 'hono';
const app = new Hono();
app.get('/', (c) => {
return c.text('Hello Hono!');
});
export default app;
如果需要獲取參數,可以通過以下方式實現:
app.get('/posts/:id', (c) => {
const page = c.req.query('page');
const id = c.req.param('id');
c.header('X-Message', 'Hi!');
return c.text(`You want to see ${page} of ${id}`);
});
路由配置與 Express 框架非常相似:
app.post('/posts', (c) => c.text('Created!', 201));
app.delete('/posts/:id', (c) => c.text(`${c.req.param('id')} has been deleted!`));
Hono 可以在 Cloudflare Workers、Cloudflare Pages、Deno、Bun、Fastly Compute、Lagon、Vercel、Netlify、AWS Lambda、Lambda@Edge、Node.js 等環境中使用。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/GZ1UMKYGfmDmTl9f9S5afA