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

Hoa - 一个极简 Web 框架

  •  2
     
  •   nswbmw · 12 天前 · 1586 次点击

    我使用 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  
       12 天前
    比较让我棘手的场景是
    我想用 nuxt / next 这种 后端他们是 nitro 或者别的,我如何用例如 您的框架 hoa 或者 koa/express 连接 nitro 端点和其他中间件或 server 类似 https://github.com/node-oauth/node-oauth2-server 或 prisma 这种服务和中间件
    前后端同构利用 vercel 等边缘环境运行
    zhmouV2
        2
    zhmouV2  
       12 天前
    这个能直接跑在 cf worker 上吗 hono 好像最近加了啥特性 得开 nodejs_compat flag
    v1
        3
    v1  
       12 天前
    中文开发者但是没有中文文档,虽然不影响但就是怪怪的
    nswbmw
        4
    nswbmw  
    OP
       11 天前
    @zhmouV2 可以直接跑,不需要开启 nodejs_compat ,但是如果用到数据库(如 mysql/postgres ),就得开启
    nswbmw
        5
    nswbmw  
    OP
       11 天前
    @v1 目前精力不足,先只维护英文文档了
    skkakaka2
        6
    skkakaka2  
       11 天前
    node 下只用 nest+fastify ,统一架构,舒适快捷健壮
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2459 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 10:53 · PVG 18:53 · LAX 02:53 · JFK 05:53
    ♥ Do have faith in what you're doing.