后端 nodejs 框架 Summer 0.1.0 版本发布

118 阅读3分钟

大家都在忙着ChatGPT,我在维护的自己的小框架....

官网: summerjs.dev/zh-CN/

github: github.com/calidan-x/s…

每次感觉似乎这个框架的某个功能做得不错了,回头又发现其实做得还没这么好,到 0.1.0 版本是1年多来一次又一次的不断改进。在上海人潮拥挤的地铁上,或是在热闹的星巴克,突然脑子里 came up a new idea,又是一个难眠的夜晚。

加入公司三年,我以前端开发为主,兼顾做一些后端Java开发,学习了大量企业架构的知识,在设计这套框架的时候,我充分考虑了微服务部署,Pipeline,云原生等技术,在此期间,我通过黑马培训学习考试,将restful设计,TDD 二层分解法等概念也融入到了框架开发。

今天的Summer已经涵盖了后端所需要的大量技术能力,它安全,稳定,简单,强大。


Summer的目标是创造一套与Spring Boot同样强大的NodeJS版本企业级框架。

基础功能

API路由 / 自动依赖注入 / 请求校验(ts-运行时,支持泛型)/ 自定义装饰器 / 请求拦截 / 错误处理 / 中间件/ 文件上传 / 数据流返回 / Cookie&Session / 日志打印 / 定时任务 / 数据序列化 / 安全DTO数据转换 / RPC通信 / 路径别名

插件功能

Swagger (OpenAPI 3.0.3) / Redis / TypeORM (mysql + mangodb) / Graphql / ElasticSearch / Socket.IO

测试功能

测试框架(支持登录与调试打印)

部署功能

多环境配置 / 代码打包 ( Serverless兼容)/ 服务路径配置 / 跨域 / 集群模式 / 接口数据压缩 / 静态服务器(spa支持)/ 外部依赖打包移除

技术栈

TypeScript 5.0 / Jest

Summer有什么的特点?

  1. 运行时 TypeScript是Summer最大特点,Summer内置有编译模块,在编译时提取了Type信息,Type在后端运行时相当重要,可以验证Restful请求数据类型,RPC请求数据类型,以此确保后端稳定安全,除此之外还有生成Swagger文档等作用。
  2. 集成型框架,Summer从内核到功能完全自主开发,没有在底层依赖 express / koa 等框架,这使得Summer的编译体积更小,每个模块之间融合得更紧密,且无需安装更多依赖就可以直接使用功能。
  3. 去装饰器化,Decorator赋予了ts代码强大的功能,但是过多的Decorator会导致代码臃肿,学习成本高,去装饰器和少装饰器一直是Summer的一项目标。让请求的DTO,Controller代码更简洁有助于开发者更好的整理和理解代码。
  4. 自定义装饰器,Summer提供了强大的自定义装饰器创建方法,让开展者轻松定义装饰器。
  5. Swagger的深度集成,API文档如此重要,Summer的Swagger插件能轻松的生成文档UI,还额外支持了设置密码等功能。
  6. 代码打包,集成了ESBuild工具打包,兼容Serverless部署。