在前面的章节中,我们介绍了 Egg 是基于 Koa 实现的,所以 Egg 的中间件形式和 Koa 的中间件形式是一样的,都是基于洋葱圈模型。每次我们编写一个中间件,就相当于在洋葱外面包了一层。
原文档地址:中间件(Middleware)
编写中间件
写法
我们先来通过编写一个简单的 gzip 中间件,来看看中间件的写法。
大约 5 分钟
在前面的章节中,我们介绍了 Egg 是基于 Koa 实现的,所以 Egg 的中间件形式和 Koa 的中间件形式是一样的,都是基于洋葱圈模型。每次我们编写一个中间件,就相当于在洋葱外面包了一层。
原文档地址:中间件(Middleware)
我们先来通过编写一个简单的 gzip 中间件,来看看中间件的写法。
在快速入门中,大家对框架应该有了初步的印象,接下来我们简单了解下目录约定规范。
原文档地址: 目录结构
egg-project
├── package.json
├── app.js (可选)
├── agent.js (可选)
├── app
| ├── router.js
│ ├── controller
│ | └── home.js
│ ├── service (可选)
│ | └── user.js
│ ├── middleware (可选)
│ | └── response_time.js
│ ├── schedule (可选)
│ | └── my_task.js
│ ├── public (可选)
│ | └── reset.css
│ ├── view (可选)
│ | └── home.tpl
│ └── extend (可选)
│ ├── helper.js (可选)
│ ├── request.js (可选)
│ ├── response.js (可选)
│ ├── context.js (可选)
│ ├── application.js (可选)
│ └── agent.js (可选)
├── config
| ├── plugin.js
| ├── config.default.js
│ ├── config.prod.js
| ├── config.test.js (可选)
| ├── config.local.js (可选)
| └── config.unittest.js (可选)
└── test
├── middleware
| └── response_time.test.js
└── controller
└── home.test.js
一个 Web 应用本身应该是无状态的,并拥有根据运行环境设置自身的能力。
原文档地址:运行环境
通过 config/env
文件指定,该文件的内容就是运行环境,如 prod
。
// config/env
prod