The safest way to try to get what you want is to try to deserve what you want

从 NodeJS 到 Koa2 至 Egg

Posted on By Frank·J

从 NodeJS 到 Koa2

前不久把 NodeJS 的文档看了一遍,当时做项目还是远远不够的,很多东西用原生的写都比较繁琐,不管是开发还是维护都需要较大的成本,于是我开始选择学习一个node框架,选择也不多就两个: ExpressKoa2,我也没有犹豫,选择了后者。这两个框架都是同一个团队开发的,后者更加精简,这得益于洋葱模型使得很多模块拆分成中间件,因此其核心就变得非常简洁(其核心代码甚至连路由都拆分了出来),如下:

├── lib
│   ├── application.js // koa2 的入口文件,封装了context,request,response,以及最核心的中间件处理流程。
│   ├── context.js // 应用上下文,里面直接封装部分request.js和response.js的方法
│   ├── request.js // http请求
│   └── response.js // http响应
└── package.json // 配置文件

另外 Koa 中大量使用的 async/await (ES7的异步同步化方案),这样也避免了原生NodeJS中回调地狱的问题,代码也变得优雅了许多。

当然还有很多东西我这里就不一一赘述了,其实我很早之前就大概了解了一下 Koa2 ,看了一点点路由相关的知识结合 MongoDB 写了个全栈项目 ,项目写的不完美只是实现了功能,苦于一直没有系统的去学习,长期拖延症的我终于下定决心了不能再这么颓废了,一定要好好学习,所以写此文为证…

目前我正在读 Koa2 的文档…先读英文文档,再读中文文档,加油!!!

Koa2 至 Egg

Egg 是继 Koa2 的下一个目标。

我为什么要学 Egg? 主要因为我听一个大佬的经验训诫:Koa2 不适合做企业级项目,多人联合开发遇到了很多苦恼!

虽然我目前没有遇到过这样的问题,但是多学点东西本身是没有坏处的,希望我能够在学习中发现使用 Egg 会给我带来的惊喜,这样也算是避免踩坑,有前人的前车之鉴我也少走弯路了…

目前来说我看见 Egg 官网上就简单的秒速了下它和 Koa 的关系:

  • Koa 是一个非常优秀的框架,然而对于企业级应用来说,它还比较基础。
  • 而 Egg 选择了 Koa 作为其基础框架,在它的模型基础上,进一步对它进行了一些增强。

学如逆水行舟,不进则退

学习是一件痛苦的事情,但是如果学习变成了自己的爱好的话,那将是一个美妙的过程,我想我正在经历这个过程…

2018年还剩最后三个月了,加油!希望这一段学习历程能够成为我2018一个厚重的足迹!未完,待续…