目录

Express、Koa、Egg.js、Nest.js 的区别

  1. Express.js 是 Node.JS 诞生之初,最早出现的一款框架,现在仍然很流行,作者是 TJ。

  2. Koa.js 是一款微型 Web 框架,写一个 hello world 很简单,但 web 应用离不开 session,视图模板,路由,文件上传,日志管理。这些 Koa 都不提供,需要自行去官方的 Middleware 寻找。然而,100 个人可能找出 100 种搭配。

  3. Egg.js 是基于 Koa.js,解决了上述问题,将社区最佳实践整合进了 Koa.js,另取名叫 Egg.js,并且将多进程启动,开发时的热更新等问题一并解决了。这对开发者很友好,开箱即用,开箱即是最(较)佳配置。

现在 TypeScript 大热,可以在编码期间,提供类型检查,更智能的代码提示。Egg.js 不支持 TypeScript,此时淘宝团队在 Egg.js 基础上,引入了 TypeScript 支持,取名叫 MidwayJS。

TypeScript 是绕不开的话题。

  1. 基于 Express.js 的全功能框架 Nest.js ,他是在 Express.js 上封装的,充分利用了 TypeScript 的特性;Nest.js 的优点是社区活跃,涨势喜人。缺点是,如果从来没有接触过 TS,刚开始学习曲线有点陡峭。

总结

Egg.js 和 Nest.js 相对于 Express、Koa 做了更高层面的封装。

好处是一些需要配置的东西开箱即用,而且写法相对统一,团队协作成本低。

坏处是灵活性降低,扩展性受到约束,一些特定的业务需求实现起来比较麻烦。

参考链接

koa.js,egg.js,express.js 三者有什么区别?