mirror of
https://github.com/eggjs/egg.git
synced 2024-12-04 07:14:30 +00:00
68 lines
3.3 KiB
Markdown
68 lines
3.3 KiB
Markdown
title: Structure
|
||
---
|
||
|
||
In the [Quick Start](../intro/quickstart.md), we should have a preliminary impression on the framework, next let us simply understand the directory convention specification.
|
||
|
||
```bash
|
||
egg-project
|
||
├── package.json
|
||
├── app.js (optional)
|
||
├── agent.js (optional)
|
||
├── app
|
||
| ├── router.js
|
||
│ ├── controller
|
||
│ | └── home.js
|
||
│ ├── service (optional)
|
||
│ | └── user.js
|
||
│ ├── middleware (optional)
|
||
│ | └── response_time.js
|
||
│ ├── schedule (optional)
|
||
│ | └── my_task.js
|
||
│ ├── public (optional)
|
||
│ | └── reset.css
|
||
│ ├── view (optional)
|
||
│ | └── home.tpl
|
||
│ └── extend (optional)
|
||
│ ├── helper.js (optional)
|
||
│ ├── request.js (optional)
|
||
│ ├── response.js (optional)
|
||
│ ├── context.js (optional)
|
||
│ ├── application.js (optional)
|
||
│ └── agent.js (optional)
|
||
├── config
|
||
| ├── plugin.js
|
||
| ├── config.default.js
|
||
│ ├── config.prod.js
|
||
| ├── config.test.js (optional)
|
||
| ├── config.local.js (optional)
|
||
| └── config.unittest.js (optional)
|
||
└── test
|
||
├── middleware
|
||
| └── response_time.test.js
|
||
└── controller
|
||
└── home.test.js
|
||
```
|
||
|
||
As above, directories by conventions of framework:
|
||
|
||
- `app/router.js` used to configure URL routing rules, see [Router](./router.md) for details.
|
||
- `app/controller/**` used to parse the input from user, return the corresponding results after processing, see [Controller](./controller.md) for details.
|
||
- `app/service/**` used for business logic layer, optional, recommend to use,see [Service](./service.md) for details.
|
||
- `app/middleware/**` uesd for middleware, optional, see [Middleware](./middleware.md) for details.
|
||
- `app/public/**` used to place static resources, optional, see built-in plugin [egg-static](https://github.com/eggjs/egg-static) for details.
|
||
- `app/extend/**` used for extensions of the framework, optional, see [Extend EGG](./extend.md) for details.
|
||
- `config/config.{env}.js` used to write configuration files, see [Configuration](./config.md) for details.
|
||
- `config/plugin.js` used to configure the plugins that need to be loaded, see [Plugin Development](../advanced/plugin.md) for details.
|
||
- `test/**` used for unit test, see [Unit Test](../core/unittest.md) for details.
|
||
- `app.js` and `agent.js` are used to customize the initialization works at startup, see [Application Startup Configuration](./app-start.md) for details. For the role of `agent.js` see [Agent Mechanism](../core/cluster-and-ipc.md#agent-mechanism).
|
||
|
||
Directories by conventions of built-in plugins:
|
||
|
||
- `app/public/**` used to place static resources, optional, see built-in plugin [egg-static](https://github.com/eggjs/egg-static) for details.
|
||
- `app/schedule/**` used for scheduled tasks, optional, see [Scheduled Task](./schedule.md) for details.
|
||
|
||
**To customize your own directory specification, see [Loader API](../advanced/loader.md)**
|
||
|
||
- `app/view/**` used to place view files, optional, by view plugins conventions, see [View Rendering](../core/view.md) for details.
|
||
- `app/model/**` used to place the domain model, optional, by the domain related plugins conventions, such as [egg-sequelize](https://github.com/eggjs/egg-sequelize).
|