Hoa - 一个极简 Web 框架 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nswbmw
V2EX    Node.js

Hoa - 一个极简 Web 框架

  •  2
     
  •   nswbmw 19 天前 1781 次点击

    我使用 Koa 很多年了,一直很喜欢它简洁的设计哲学。近几年在 Cloudflare Worker 上开发较多,接触到了 Hono 。Hono 也是一个不错的框架,但在深入使用后,我对它的一些设计理念并不是很认同,于是萌生了自己造个轮子的想法。

    我为新框架设定了三条核心原则:

    1. 微内核架构:与 Koa 类似,保留了洋葱模型的中间件设计,同时还补充了插件系统
    2. 符合直觉的 API 设计:摒弃 Koa 的 delegates 思路,API 严格区分 ctx/ctx.req/ctx.res ,更加符合语义
    3. 环境无关性:可在 Node.js 、Bun 、Deno 以及 Cloudflare Worker 、Vercel 等边缘环境运行

    于是 Hoa 诞生了。目前我跟另一个维护者已经为 Hoa 补充了近 30 个常用中间件,我也已经将手头大部分项目从 Koa 迁移至 Hoa 。今天分享出来,希望更多人去使用,也期待收到更多反馈,共同把 Hoa 框架打磨得更好。

    特点

    • Minimal - Only ~4.4KB (gzipped).
    • Zero Dependencies - Built on modern Web Standards with no external dependencies.
    • Highly Extensible - Features a flexible extension and middleware system.
    • Standards-Based - Designed entirely around modern Web Standard APIs.
    • Multi-Runtime - The same code runs on Cloudflare Workers, Deno, Bun, Node.js, and more.
    • 100% Tested Backed by a full-coverage automated test suite.

    安装

    npm i hoa --save 

    快速开始

    import { Hoa } from 'hoa' const app = new Hoa() app.use(async (ctx, next) => { ctx.res.body = 'Hello, Hoa!' }) export default app 

    License

    MIT

    6 条回复    2025-11-26 17:54:36 +08:00
    c3de3f21
        1
    c3de3f21  
       19 天前
    比较让我棘手的场景是
    我想用 nuxt / next 这种 后端他们是 nitro 或者别的,我如何用例如 您的框架 hoa 或者 koa/express 连接 nitro 端点和其他中间件或 server 类似 https://github.com/node-oauth/node-oauth2-server 或 prisma 这种服务和中间件
    前后端同构利用 vercel 等边缘环境运行
    zhmouV2
        2
    zhmouV2  
       19 天前
    这个能直接跑在 cf worker 上吗 hono 好像最近加了啥特性 得开 nodejs_compat flag
    v1
        3
    v1  
       19 天前
    中文开发者但是没有中文文档,虽然不影响但就是怪怪的
    nswbmw
        4/div>
    nswbmw  
    OP
       19 天前
    @zhmouV2 可以直接跑,不需要开启 nodejs_compat ,但是如果用到数据库(如 mysql/postgres ),就得开启
    nswbmw
        5
    nswbmw  
    OP
       19 天前
    @v1 目前精力不足,先只维护英文文档了
    skkakaka2
        6
    skkakaka2  
       18 天前
    node 下只用 nest+fastify ,统一架构,舒适快捷健壮
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3286 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 04:47 PVG 12:47 LAX 20:47 JFK 23:47
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86