简体中文
路线图与框架对比
hazejs 的目标是成为 Node.js 生态中最完整的后端框架:生产应用需要的能力都由官方提供,风格统一、类型完整、可以部署到任何平台,同时保持快速、现代的工具链。
本页对比 hazejs 当前的能力与其它常见选择,并列出后续计划。
对比
图例:✅ 官方内置 · ◐ 官方扩展包或部分支持 · 🧩 社区包 / 自行集成 · — 不提供
以下内容按 2026 年 10 月各框架的官方包整理,如有出入欢迎提 Issue 指正。
| 能力 | hazejs | NestJS | AdonisJS | Laravel(PHP,参照) | Express / Fastify / Hono |
|---|---|---|---|---|---|
| 路由、中间件、异常处理 | ✅ | ✅ | ✅ | ✅ | ✅(路由与中间件) |
| 依赖注入 | ✅ inject() | ✅ 装饰器 | ✅ | ✅ | — |
| 请求校验 | ✅ Standard Schema | ◐ class-validator | ✅ VineJS | ✅ | 🧩 |
| ORM、迁移、数据填充 | ✅ 基于 drizzle | 🧩 TypeORM / Prisma | ✅ Lucid | ✅ Eloquent | 🧩 |
| 认证(JWT、Session) | ✅ | ◐ Passport | ✅ | ✅ | 🧩 |
| 授权(Gate、Policy) | ✅ | 🧩 CASL | ✅ Bouncer | ✅ | 🧩 |
| CSRF、CORS、安全头、限流 | ✅ | ◐ | ✅ | ✅ | 🧩 |
| 缓存与原子锁 | ✅ | ◐ | ✅ | ✅ | 🧩 |
| 队列(重试、延迟) | ✅ | ◐ BullMQ 模块 | 🧩 | ✅ | 🧩 |
| 定时任务 | ✅ | ◐ | 🧩 | ✅ | 🧩 |
| 事件与排队监听器 | ✅ | ◐ | ✅ | ✅ | — |
| WebSocket / Socket.IO | ✅ 两者都支持 | ✅ Gateway | ◐ SSE(Transmit) | ✅ Reverb | 🧩 |
| 文件存储(local / S3 / R2) | ✅ | 🧩 | ✅ Drive | ✅ | 🧩 |
| 邮件与排队发送 | ✅ | 🧩 | ✅ | ✅ | 🧩 |
| AI:多厂商大模型、工具、Agent、RAG、MCP | ✅ @hazejs/ai | 🧩 | 🧩 | 🧩 | 🧩 |
| 测试替身(队列、事件、邮件、存储) | ✅ | ◐ | ✅ | ✅ | — |
| 代码生成与命令行 | ✅ haze make:* | ✅ | ✅ | ✅ | — |
| 类型生成(配置、路由、授权能力) | ✅ | — | ◐ | — | ◐(Hono RPC) |
| 不重启进程的热更新 | ✅ | ◐ | ✅ hot-hook | 不适用 | 🧩 |
| Vite 全栈(同端口、一次构建) | ✅ 任意 Vite 框架 | — | ◐ Inertia / Vite | ◐ Vite / Inertia | — |
| Edge 与 Serverless 部署预设 | ✅ 8 个预设 | — | — | ◐ Vapor | ◐ Hono |
| Cloudflare D1 / KV / R2 / Queues / DO 驱动 | ✅ | — | — | — | ◐ Hono(绑定) |
| OpenAPI 生成、类型安全的客户端 | ✅ | ✅ | 🧩 | 🧩 | ◐ |
| 国际化 | ✅ | 🧩 | ✅ | ✅ | 🧩 |
| 多渠道通知 | ✅ 含企业微信 / 钉钉 / 飞书 | — | 🧩 | ✅ | — |
| 私有 / Presence 频道广播 | ✅ WS / SSE / Socket.IO | — | ◐ | ✅ | — |
| 自定义命令、REPL | ✅ | 🧩 | ✅ | ✅ | — |
| 可观测性(健康检查、链路追踪、面板) | ✅ OpenTelemetry、/__haze | ◐ | ◐ | ✅ Telescope / Pulse / Horizon | 🧩 |
| OAuth 社交登录、API Token、双因素认证 | ✅ 含通行密钥、国内厂商 | 🧩 | ◐ Ally / Token | ✅ | 🧩 |
| 全文搜索 | ✅ @hazejs/search | 🧩 | 🧩 | ✅ Scout | 🧩 |
| 多租户 | ✅ | 🧩 | 🧩 | 🧩 | 🧩 |
| GraphQL、微服务传输 | ✅ @hazejs/graphql、@hazejs/microservices | ✅ | 🧩 | 🧩 | 🧩 |
| 模块 / 扩展包(路由、配置、迁移、任务) | ✅ 本地 modules/ 与 npm 模块 | ◐ 模块(无迁移) | ✅ 扩展包 | ✅ 扩展包 | ◐ Fastify 插件 |
| 文档站 | ✅ | ✅ | ✅ | ✅ | ✅ |
已完成
| 里程碑 | 内容 |
|---|---|
| M0–M4 | monorepo、运行时内核(容器、路由、中间件、异常)、带热更新的 Vite 插件、命令行、Vue 全栈、脚手架、测试工具、代码生成、类型生成、日志、开发错误页 |
| M5–M6 | 响应格式化、出站拦截器、多应用(前缀 / 域名) |
| M7–M8 | @hazejs/orm(MySQL、PostgreSQL、SQLite)与 MongoDB 适配器 |
| M9–M11 | 部署预设、生产迁移、D1 / Turso 驱动、依赖追踪、vite preview、React 模板 |
| M12–M13 | 内置中间件、上传、Session、认证(JWT / Session)、授权(Gate / Policy)、CSRF |
| M14–M16 | 缓存、队列、定时任务、事件、WebSocket(Redis 广播、Durable Objects) |
| M17–M18 | Socket.IO、文件存储(local / S3 / R2)、邮件(SMTP / Resend / Postmark / Mailgun / SES) |
| M19 | 文档站(VitePress,英文 + 中文,GitHub Pages);@hazejs/ai:17 个厂商、无 SDK 依赖,流式输出、工具、结构化输出、Embedding 与 RAG、带记忆的 Agent、图像、语音、MCP、useChat |
| M20 | OpenAPI:由路由与 Standard Schema 校验生成,提供 Swagger / Scalar 界面,以及给前端用的类型化 HTTP 客户端 |
| M21 | 命令行扩展:自定义命令(app/command、haze make:command)、haze repl、make:mail |
| M22 | 通知(邮件、数据库、广播、Slack / Webhook)与广播频道(私有 / Presence 频道鉴权,基于 WebSocket、Socket.IO 与 SSE) |
| M23 | 国际化(消息、校验错误、邮件)、API Resource / 转换器、签名路由链接、加密服务 |
| M24 | 可观测性:健康检查、OpenTelemetry 链路与指标、日志传输、开发面板(请求、查询、任务、邮件)、队列面板 |
| M25 | 认证扩展:OAuth 社交登录、个人访问令牌、邮箱验证与重置密码流程、TOTP 双因素认证、Passkey |
| M26 | 搜索(数据库全文检索、Meilisearch、Typesense、Elasticsearch / OpenSearch)与多租户 |
| M27 | 可选包:GraphQL、微服务传输(Redis、NATS、gRPC) |
| M28 | 模块:以本地 modules/<name>/ 目录或 npm 包(defineModule)提供可复用的功能单元,包含路由、中间件、默认配置、提供者、迁移、任务、事件、命令与授权策略;make:module、module:list 与 module 模板 |
| M29 | 统一 Redis 连接:config/redis.ts 声明命名连接(单机、TLS、Cluster、Sentinel、自定义工厂),缓存、队列、WebSocket、广播、Socket.IO 与微服务按名字引用;共享命令连接、Redis 门面、按连接 PING 的 redisCheck() |
| M30 | ThinkPHP 风格的缓存接口:delete / clear / inc / dec 与 PSR-16 别名、原子的 push、ttl() / touch()、handler()、所有驱动可用的标签缓存、带类型的 Redis 哈希 / 列表 / 集合 / 有序集合(memory 驱动模拟,供测试)、cache() 助手函数、还原 Date / BigInt / Map / Set 的 JSON 序列化 |
| M32 | 用真实后端验证整个框架:按 hazejs 的约定重建 ai-admin(本地模块、inject()、路由文件、JWT Guard 钩子与 Gate 回退、@hazejs/socket.io、@hazejs/orm、队列 / 定时任务 / 事件),并在 Docker 中端到端验证;框架侧修复包括 AuthorizationException、ctx.route、app.onBooted()、runInServer、带 shutdownTimeout 的优雅退出、25 个 ORM 缺口与 14 个队列 / 定时任务 / 事件缺口 |
| M33 | 自动导入(@hazejs/auto-import):控制器、服务、模型、中间件等 app/<kind> 目录以及精选的框架 API 在开发服务器、构建、测试和 CLI 中无需 import 即可使用,并生成全局类型声明保留类型提示;haze.config.ts 的 autoImport、各包自带预设、create-hazejs --auto-import |
| 1.0 | 首个正式版(2026-10-30):所有 @hazejs/* 包与 create-hazejs 发布 1.0.0,此后遵循语义化版本;代理后的 ctx.ip 改取最近一层可信代理追加的地址(trustProxy 可传跳数),Workers 与 Lambda 直接使用平台提供的客户端地址;两步验证的失败次数与通行密钥挑战改为在服务端记录 |
| M31 | 开发常用能力:模型工厂(defineFactory、状态、序列、for / has / hasAttached、faker)、读写分离(写后读主库、连接池参数)、出站 Http 客户端(重试、超时、并发池、命名客户端、Http.fake())、队列数据库驱动、任务链、批量、唯一任务与任务中间件、维护模式(haze down / up、密钥绕过、暂停 worker)与零依赖的 TSX 服务端视图 |
后续计划
优先级会根据社区反馈调整。每个里程碑都带测试、模板示例和文档,并在开发服务器、测试以及声明支持的每个部署预设中可用。
| 里程碑 | 内容 |
|---|---|
| 1.x | 性能基准、大版本之间的升级指南、长期支持策略,以及社区提出的功能——1.x 内不做破坏性变更 |
有想法或急需某个功能?欢迎提交 Feature Request。