1.简介
middleware的局限
- 定位拦截用户请求,并在它前后做一些事情。
- 但实际情况下,很多功能与请求无关,如定时任务,初始化,Application扩展
- 功能之间的顺序不能简单的交给开发者,需要统一编排,管理
对于企业级应用来说,还比较基础,需要进一步封装。
2.思考
3.一个大规模团队的基础框架
最重要的是:需要遵循一定的约束和约定。
quitstart
npm i egg-init -gmkdir egg-example && cd egg-examplenpm init egg --type=simplenpm i//启动项目npm run dev
编程模型规范
egg-project├── app│ ├── controller(控制器) -->参数处理,调用api,模板渲染│ | └── home.js│ ├── service (业务逻辑)│ | └── user.js│ ├── view (模板)│ | └── home.tpl│ ├── public (静态资源)│ | └── reset.css| ├── router.js(路由)├── config(配置)| ├── plugin.js| ├── config.default.js│ ├── config.prod.js└── test├── middleware| └── response_time.test.js└── controller└── home.test.js
egg-view-ejsegg-view-vueegg-view-reactegg-view-nunjucks
4.插件生态
- 进程:egg-cluster
- 安全:egg-security
- 模板:egg-view-nunjucks
- 日志:egg-logger
- 数据库:egg-mysql/egg-sequelize
- 统一登录:egg-password-xxx
-
进程管理
健壮性,处理未捕获异常,优雅退出
Master/Worker之外,还多了个Agent进程
只有一个Agent,负责脏活累活
- 不对外服务,专门处理公共事务
-
5.掘金文档


