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目录结构和相应的约定规范就可以了。

1. 本站所有免费资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!
2. 本站不保证所提供下载的免费资源的准确性、安全性和完整性,免费资源仅供下载学习之用!如有链接无法下载、失效,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或技术教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
5. 加入前端开发QQ群:565733884,我们大家一起来交流技术!
码云笔记 » P10:中台搭建2-egg.js目录结构和约定规范

发表评论

提供最优质的资源集合

立即查看 了解详情