1.简介
middleware的局限
- 定位拦截用户请求,并在它前后做一些事情。
- 但实际情况下,很多功能与请求无关,如定时任务,初始化,Application扩展
- 功能之间的顺序不能简单的交给开发者,需要统一编排,管理
对于企业级应用来说,还比较基础,需要进一步封装。
2.思考
3.一个大规模团队的基础框架
最重要的是:需要遵循一定的约束和约定。
quitstart
npm i egg-init -g
mkdir egg-example && cd egg-example
npm init egg --type=simple
npm 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-ejs
egg-view-vue
egg-view-react
egg-view-nunjucks
4.插件生态
- 进程:egg-cluster
- 安全:egg-security
- 模板:egg-view-nunjucks
- 日志:egg-logger
- 数据库:egg-mysql/egg-sequelize
- 统一登录:egg-password-xxx
-
进程管理
健壮性,处理未捕获异常,优雅退出
Master/Worker之外,还多了个Agent进程
只有一个Agent,负责脏活累活
- 不对外服务,专门处理公共事务
-
5.掘金文档