推荐一款高性能全栈 Node.js 框架: daze.js
发布于 5 年前 作者 czewail 4687 次浏览 来自 分享

特性:

  • 基于 TypeScript 开发
  • 面向切面编程(AOP)
  • 提供 ORM、验证器、资源层、服务层、中间层等抽象层能力
  • 基于 IOC 容器设计模式,模块高度解耦,支持依赖注入
  • 高性能路由设计,性能优异(前缀树结构)
  • 可通过服务提供者模式进行扩展,具有非常强大的扩展能力

性能

附上基准测试,可以看下 avg 的qps

生态

目前提供了 dubbo 解决方案,wbsocket 扩展等,计划添加监控平台等企业级解决方案

最后

框架目前已经在我们公司大流量生产环境中使用,顺便寻找感兴趣的开源维护者!!

开源不易,希望大家多多支持!

项目地址 Daze.js

11 回复

鼓励开源,先点个赞。粗扫了一眼,有几点想法,求解

1)功能很强大,api设计的不是很好,还可以提升一下 2)性能提升是啥原因?中间件机制自己写的么? 3)src下的components没有在文档里看到咋玩的

有点想在新项目里面用上,唯一一点可能是es7的一些东西需要学习下。还有就是中间件用order来排序,好处就是可以不按顺序写,只按照order排序,会不会到后面不好维护呢?

@i5ting 文档还是有待加强。。。框架是按照继承的基类自动加载的,只需要在app目录下定义对应功能文件即可: https://dazejs.org/#/docs/core/autoload

@i5ting 设计 api 方面也是最花时间的一部分了。。希望大佬指教😆

@jxycbjhc 默认是按照注解顺序来的,但是可以使用 @order() 装饰器来自定义顺序级别,不过这个功能会在下个小版本发布

@i5ting 中间件机制是自己实现的,其实无路由的情况下和 koa 的性能差距不大,语言层面/中间件机制/响应机制都有一点关系,路由层面做了数据结构的优化,基于前缀树结构来提升寻址性能,不会因为路由数量增加而明显降低寻址性能

@czewail 那理论上和fastify一样,基于radix tree实现的

@i5ting 是的,加了一些功能优化,例如内置优先级算法,全匹配路由等

@czewail 已经在example-order.ts里面看到了用例以及middleware下面的测试用例,我意思是如果写的时候出现了相同order如何处理?相同odrer无所谓先后?

@jxycbjhc 用户使用中间件一般是 @use(middlewareClass) , 会按照使用的顺序进行,register 方式一般在扩展模块的时候会用的比较多

@czewail 懂了。补充一下和https://www.cnblogs.com/accordion/p/10569848.html 这个有点像了。

回到顶部