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 等环境中使用。
1v1私教,帮大家拿到满意的 offer
我目前在做一个 前端训练营 ,主打的就是:1v1 私教,帮大家拿到满意的 offer 。
也可以直接加我微信沟通,备注【训练营】:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!