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

Hoa - 一个极简 Web 框架

  •  
  •   nswbmw · 7 小时 22 分钟前 · 667 次点击

    我使用 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

    5 条回复    2025-11-25 20:15:23 +08:00
    c3de3f21
        1
    c3de3f21  
       7 小时 4 分钟前
    比较让我棘手的场景是
    我想用 nuxt / next 这种 后端他们是 nitro 或者别的,我如何用例如 您的框架 hoa 或者 koa/express 连接 nitro 端点和其他中间件或 server 类似 https://github.com/node-oauth/node-oauth2-server 或 prisma 这种服务和中间件
    前后端同构利用 vercel 等边缘环境运行
    zhmouV2
        2
    zhmouV2  
       6 小时 42 分钟前
    这个能直接跑在 cf worker 上吗 hono 好像最近加了啥特性 得开 nodejs_compat flag
    v1
        3
    v1  
       6 小时 30 分钟前
    中文开发者但是没有中文文档,虽然不影响但就是怪怪的
    nswbmw
        4
    nswbmw  
    OP
       4 小时 49 分钟前
    @zhmouV2 可以直接跑,不需要开启 nodejs_compat ,但是如果用到数据库(如 mysql/postgres ),就得开启
    nswbmw
        5
    nswbmw  
    OP
       4 小时 46 分钟前
    @v1 目前精力不足,先只维护英文文档了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1343 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 17:01 · PVG 01:01 · LAX 09:01 · JFK 12:01
    ♥ Do have faith in what you're doing.