Skip to content

目录结构 ​

在快速入门中,大家对框架应该有了初步的印象,接下来我们简单了解下目录约定规范。

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 等领域类相关插件。

Born to build better enterprise frameworks and apps