P10:中台搭建2-egg.js目录结构和约定规范

在上节文章中已经搭建好了egg.js开发环境,但是我没有讲过egg.js的基础知识,所以需要点时间,简单讲解一下egg.js的目录结构和约定规范。只有明白了这些,我们才能更好的进行开发。

egg.js 目录结构介绍

这里我只介绍比较重要的文件,如果是开发中不太常用的我就不作过多介绍了,毕竟我们这是实战项目,讲解太多的基础知识会耽误大家时间。大家可以自己去看文档(文档全部中文,很好理解)。

  • app 文件夹:项目开发文件,程序员主要操作的文件,项目的大部分代码都会写在这里。
  • config 文件夹:这个是整个项目的配置目录,项目和服务端的配置都在这里边进行设置。
  • logs 文件夹:日志文件夹,正常情况下不用修改和查看里边内容。
  • node_modules:项目所需要的模块文件,这个前端应该都非常了解,不多作介绍。
  • run 文件夹:运行项目时,生成的配置文件,基本不修改里边的文件。
  • test 文件夹:测试使用的配合文件,这个在测试时会使用。
  • .autod.conf.js: egg.js 自己生成的配置文件,不需要进行修改。
  • eslinttrc 和 eslintignore:代码格式化的配置文件。
  • gitgnore:git 设置忽略管理的配置文件。
  • package.json: 包管理和命令配置文件,这个文件经常进行配置。

这些就是egg.js项目比较重要的一些文件作用,这里只是简单的介绍了一下,在以后文章中如果开发用到,我们会详细讲解。比较重要的是app文件夹、config文件夹和package.json文件。

Egg.js 目录约定规范

上篇文章中我说过 Koa2 框架虽然小巧好用,但是在团队开发中使用,是缺少规范的,所以不擅长企业级开发。Egg.js 框架就是在 Koa2 的基础上规范了这些约定,所以也带来了一些文件目录的限制。

在 app 目录下,egg 要求我们必须要有下面的文件:

  • controller 文件夹:控制器,渲染和简单的业务逻辑都会写道这个文件里。配置路由时也会用到(路由配置需要的文件都要写在控制器里)。
  • public 文件夹:公用文件夹,把一些公用资源都放在这个文件夹下。
  • router.js: 项目的路由配置文件,当用户访问服务的时候,在没有中间件的情况下,会先访问 router.js 文件。
  • service 文件夹:这个是当我们的业务逻辑比较复杂或和数据库打交道时,会把业务逻辑放到这个文件中。
  • view 文件夹:模板文件夹,相当于表现层的专属文件夹,这个项目,我们使用接口的形式,所以不需要建立 view 文件夹。
  • extend 文件:当我们需要写一些模板中使用的扩展方法时,我们会放到这个文件夹里。
  • middleware:中间件文件夹,用来写中间件的,比如最常用的路由首位。

当然我们现在有个最基础的,然后又需要再不断向文件夹里加文件就可以。

现在我们作一个小例子,在/app/controller/home.js文件中,加入一个 list 方法,然后再进行配置路由。

home.js

async list() {
    const { ctx } = this;
    ctx.body = '<h1>mybj blog list</h1>';
}

router.js

'use strict';

/**
 * @param {Egg.Application} app - egg application
 */
module.exports = app => {
  const { router, controller } = app;
  router.get('/', controller.home.index);
  router.get('/list', controller.home.list);
};

这时候,启动一下服务,然后访问一下,http://127.0.0.1:7001/list,可以看到我们的页面放生了变化。

以上就是本文全部内容,大家只要理解 egg.js 目录结构和相应的约定规范就可以了。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » P10:中台搭建2-egg.js目录结构和约定规范

发表回复