原文链接

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

    1. egg-project
    2. ├── package.json
    3. ├── app.js (可选)
    4. ├── agent.js (可选)
    5. ├── app
    6. | ├── router.js
    7. ├── controller
    8. | └── home.js
    9. ├── service (可选)
    10. | └── user.js
    11. ├── middleware (可选)
    12. | └── response_time.js
    13. ├── schedule (可选)
    14. | └── my_task.js
    15. ├── public (可选)
    16. | └── reset.css
    17. ├── view (可选)
    18. | └── home.tpl
    19. └── extend (可选)
    20. ├── helper.js (可选)
    21. ├── request.js (可选)
    22. ├── response.js (可选)
    23. ├── context.js (可选)
    24. ├── application.js (可选)
    25. └── agent.js (可选)
    26. ├── config
    27. | ├── plugin.js
    28. | ├── config.default.js
    29. ├── config.prod.js
    30. | ├── config.test.js (可选)
    31. | ├── config.local.js (可选)
    32. | └── config.unittest.js (可选)
    33. └── test
    34. ├── middleware
    35. | └── response_time.test.js
    36. └── controller
    37. └── home.test.js

    如上,由框架约定的目录:

    • app/router.js 用于配置 URL 路由规则,具体参见 Router
    • app/controller/** 用于解析用户的输入,处理后返回相应的结果,具体参见 Controller
    • app/service/** 用于编写业务逻辑层,可选,建议使用,具体参见 Service
    • app/middleware/** 用于编写中间件,可选,具体参见 Middleware
    • app/public/** 用于放置静态资源,可选,具体参见内置插件 egg-static
    • app/extend/** 用于框架的扩展,可选,具体参见框架扩展
    • config/config.{env}.js 用于编写配置文件,具体参见配置
    • config/plugin.js 用于配置需要加载的插件,具体参见插件
    • test/** 用于单元测试,具体参见单元测试
    • app.jsagent.js 用于自定义启动时的初始化工作,可选,具体参见启动自定义。关于agent.js的作用参见Agent机制

    由内置插件约定的目录:

    • app/public/** 用于放置静态资源,可选,具体参见内置插件 egg-static
    • app/schedule/** 用于定时任务,可选,具体参见定时任务

    若需自定义自己的目录规范,参见 Loader API

    • app/view/** 用于放置模板文件,可选,由模板插件约定,具体参见模板渲染
    • app/model/** 用于放置领域模型,可选,由领域类相关插件约定,如 egg-sequelize