目录结构.md 2.8 KB

目录结构

前端如果是VUE,项目就是应该是MVVC模式;

如果是H5,项目就应该是MVC;

反正服务端最主要的就是M+C部分

1.app(按实际app目录介绍,非重要顺序)

项目代码基本都在这里,此文件夹外的文件多数是设置

1.1 controller

和java各种框架差不多,controller处理非数据交互部分,不过说实话,我自己写的时候,分的不清.

1.2 middleware

中间件,目前多用于针对已完成接口的修改,有大有小的修改要求,不过都是基于原处理基础上进行修改的要求.
例如:在查询保安时,需要企业名称,但是只有企业id. 不需要用企业id再进行一个/一个个查,而是通过中间件,拦截已查询的结果,再查询整理作为接口最后的返回. 不过这里的整理部分基本相似,可以抽出工具函数,现在没抽.

1.3 model (不用了,转移至springBoot,Magic-api进行数据操作)

如其名,写实体的地方,在service和controller中都可以使用:
this.ctx.model.Xxx(注意首字母是大写,如果有 `_` 则需要转换成大驼峰),可以多层级,文件夹继续 `·` 即可:
this.ctx.model.Aaa.Bbb
model使用中,首字母都需要大写
写错会导致的情况多是 数据库插件的函数 undefined,例如:
function xxx(find) is undefined

1.4 public

可以放文件.
1.query.js:查询的设置,针对表,详情去文件里看
2.dataToDb.js: 前端数据 进入 数据库 相关js.有些前端的值 不能/不适合 直接应用在数据库层操作,所以使用这个文件配置.
3.dbToData.js: 数据库数据 传到 前端 相关js.有些值给前端,也需要转换,直接在这里配置好,就可以不需要转换了,主要是这个规则是服务端定的.前端整就多余了.自己整的活自己干

1.5 service

处理数据层面,大部分东西都写这里,因为用董哥的mongodb框架习惯了,秉承:能自动绝不手写的原则.不过咱自己还没抽出不带数据库 或者 任意数据库的框架,这次可能要手写了,不过可以把工具类拿出来,自动输出 controller,真是有点懒得写那么多.先这么麻烦写吧

1.6 z_router

Q:为什么+z?
A:因为不+z,router文件夹就会排到service上面,但实际上,这东西动的相对较少.插中间时,在controller和service model来回切换的情况时,它非常 非常 非常碍事,所以我直接送它个z.
实际上命名成什么都行
这个文件夹主要是放路由文件的
eggjs中,路由文件的作用是局部中间件的使用,及对应controller(这个都一样).如果是全局中间件,在config中设置

1.7 router.js

它才是eggjs框架会读取的路由文件,z_router写完的,都要在router.js中引入,才好使,否则404