目录结构
在快速入门中,大家对框架应该有了初步的印象,接下来我们简单了解下目录约定规范。
bash
egg-project
├── package.json
├── app.ts(可选)
├── agent.ts(可选)
├── app
│ ├── controller
│ │ ├── http
│ │ │ ├── HomeController.ts
│ │ │ └── UserController.ts
│ │ ├── rpc
│ │ │ └── UserRPCController.ts
│ │ ├── mcp
│ │ │ └── MyMCPController.ts
│ │ └── schedule
│ │ └── MyTaskController.ts
│ ├── service(可选)
│ │ └── UserService.ts
│ ├── middleware(可选)
│ │ └── ResponseTimeMiddleware.ts
│ ├── public(可选)
│ │ └── reset.css
│ ├── view(可选)
│ │ └── home.tpl
│ └── extend(可选)
│ ├── helper.ts(可选)
│ ├── request.ts(可选)
│ ├── response.ts(可选)
│ ├── context.ts(可选)
│ ├── application.ts(可选)
│ └── agent.ts(可选)
├── config
| ├── plugin.ts
| ├── config.default.ts
│ ├── config.prod.ts
| ├── config.test.ts(可选)
| ├── config.local.ts(可选)
| └── config.unittest.ts(可选)
└── test
├── middleware
| └── ResponseTimeMiddleware.test.ts
└── controller
├── http
│ └── HomeController.test.ts
├── mcp
│ └── MyMCPController.test.ts
└── schedule
└── MyTaskController.test.ts如上,由框架约定的目录:
app/controller/**用于解析用户的输入,处理后返回相应的结果,具体参见 Controller。app/service/**用于编写业务逻辑层,建议使用,具体参见 Service。app/middleware/**用于编写中间件,具体参见 Middleware。app/public/**用于放置静态资源,具体参见内置插件 @eggjs/static。app/extend/**用于框架的扩展,具体参见 框架扩展。config/config.{env}.ts用于编写配置文件,具体参见 配置。config/plugin.ts用于配置需要加载的插件,具体参见 插件。test/**用于单元测试,具体参见 单元测试。app.ts和agent.ts用于自定义启动时的初始化工作,具体参见 启动自定义。关于agent.ts的作用,参见 Agent 机制。
由内置插件约定的目录:
app/public/**用于放置静态资源,具体参见内置插件 @eggjs/static。
若需自定义自己的目录规范,参见 加载器(Loader)
app/view/**用于放置模板文件,具体参见 模板渲染。app/model/**用于放置领域模型,如egg-sequelize等领域类相关插件。