本文首发公众号 【一名打字员】前端
众所周知 JavaScript
的生态圈出了名的好,配套设施完善,因此使用起来特别的顺手。前几回咱们介绍了使用 express
来进行简单的微信公众号开发,相信你们都已经了解到使用 node
能够方便快捷的进行开发 web
应用。可是因为阿里系的 egg
框架近期完成了 2.2.0
版本的迭代,让咱们看到了他们努力打造的框架中有不少值得学习以及参考的地方,因此【小谱君】团队也在使用 egg
进行整个系统的重构,包括参考 egg
的代码格式规范等等,进行一系列深层次的改造。node
今天来安利一下 egg
,经过 egg
快速选择适合对应业务模型的脚手架,快速启动项目的开发。git
熟悉的打字员应该知道, egg
如今在社区特别的火爆,官方对它本身的定义是github
为企业级框架和应用而生,但愿由 Egg.js 孕育出更多上层框架,帮助开发团队和开发人员下降开发和维护成本。
由于 egg
是基于koa 2x开发的,因此官方还特别强调了与其它两个社区框架 Express
与 Sails
的差别点web
我的比较喜欢的地方就是其可扩展性特别高,并且做为特别喜欢渐进式开发的打字员来讲,不要太友好唷。并且是熟悉 Web 开发或 MVC 模式开发的童鞋的福音,由于在这里你能看到本身熟悉的controller和service,开发起来棒棒哒。express
怎么快速的用 egg
快速的进行开发呢,咱们选择使用其官方提供的内置脚手架,推荐egg-init
。npm
首先安装 egg
(npm i egg-init -g
), 而后初始化项目 egg-init egg-example --type=simple
。json
进入生成的 egg-example
目录,其结构以下:后端
egg-example ├── package.json(配置文件) ├── app | ├── router.js(路由文件) │ ├── controller │ | └── home.js(用户控制层) ├── config | ├── plugin.js(插件配置) | ├── config.default.js(默认配置) └── test └── app └── controller └── home.test.js(测试文件)
安装依赖以后咱们就可以运行 npm run dev
在本地查看了。微信
在图中咱们能够看到,程序已经正常的在本地跑了起来,打印出当前使用的版本以及当前的 agent_worker
并监听了7001这个端口。关于 agent
和 worker
以及 master
的详细不在这里具体介绍,有兴趣的童鞋能够移步官网。
接下来咱们就能在 controller
编写本身的业务逻辑代码了,为了保持 Controller
` 中的逻辑更加简洁,官方推荐增长 service
层,什么是 Service
呢,相信不少同窗对它还很陌生,简单来讲,Service
就是在复杂业务场景下用于作业务逻辑封装的一个抽象层。同时把业务逻辑进行封装以后还能够保持业务逻辑的独立性,抽象出来的 Service
能够被多个 Controller
重复调用。而且将逻辑和展示分离,更容易编写测试用例。
这样一来,是否能够将以前写的微信公众号系统进行重构呢,在代码和整个架构上进行一个规范,赶忙动动手吧。
国内前端优秀的开发团队还有不少,可是阿里算是作的比较好的,至少他家的文档让我总体看来很舒服,并且逐渐把前端的一些概念开始扩展,融入了一些后端的思想。想一想还有特别火热的 RxJs
系列,看来将来前端依旧会走在时尚的前流。
另外在学习的过程当中发现问题咱们能够给 egg
团队提 issue
的哇,或者有更好的解决方案能够提交 PR
,万一被合并了,这牛也能够吹半辈子了哈。