框架对比
# 01. 框架的受欢迎程度
序号 | 框架名称 | star | 语言 | 发布时间 |
---|---|---|---|---|
1 | express (opens new window) | 56.9k | js | 2010/01 |
2 | koa (opens new window) | 32.6k | js | 2013/11 |
3 | egg (opens new window) | 17.9k | js | 2016/07 |
4 | nest (opens new window) | 46.7k | ts | 2017/11 |
# 02. 框架的特点
- express
- 官方介绍 (opens new window):是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。
- 特点: 老牌框架,是 Node.js 社区广泛使用的框架,简单且扩展性强,问题在于Callback Hell
- koa
- 官方介绍 (opens new window):是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套,并极大地提升错误处理的效率。koa 不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。
- 特点:拥有洋葱模型中间件的http处理库,一个请求,经过一系列的中间件,最后生成响应,context上下文的保存和传递,中间件的管理和next方法的实现。
- egg
- 官方介绍 (opens new window):为企业级框架和应用而生
- 特点: 阿里基于Koajs开源的框架,属于框架之上的框架,继承了Koajs的高性能优点,同时又加入了一些约束与开发规范,来规避Koajs框架本身的开发自由度太高的问题。
- nest:
- 官方介绍 (opens new window):用于构建高效且可伸缩的服务端应用程序的渐进式 Node.js 框架
- 特点: 在ts的趋势下为了增加开发体验的苦养家,mvc架构清晰,耦合低,but中文文档差
# 03. 框架的定位:
个人感觉 新手/中小型项目推荐使用egg.js,上手快,自定义配置简单,大型项目可以试试nest.js,后期维护与扩展方便。