本数据库使用 MongoDB,因此对于像 MySQL 的对于一对多和多对多的数据模型是不适用的,一对多以内嵌数据为主,多对多以内嵌数组为主 这必定有数据的冗余
- config: app.js 的预置加载项目,包括 env,中间件配置等
- controller: 控制器层,用于接收 http 请求参数,只能依赖于 services
- dao:数据层,用于做直接的数据库查询等,只能依赖于 models
- log:日志
- middlewares: 中间件
- models:模型层
- node_modules:依赖
- public:可对外暴露的文件
- routes:路由,只依赖于 controller
- service:服务层,用于组装 dao,因此只能依赖于 dao
- utils:工具
- 在多人协作模式里,如果要开发自己的功能,需要从 dev 里面 checkout 一个自己的开发功能的分支:
git checkout -b feature/lkd-branch
- 添加代码到暂存区
git add .
- 提交代码(不建议使用 git commit -m, 已经配好了提交指令,会在提交之前进行一次静态检查)
yarn commit
- 在
yarn commit
指令里面,选择你所提交代码的类型,比如是 feat\fix\chore 等,并且依靠 Angular 团队书写规范来提交的概要和详细内容
下面是几个常见的指令:
- feat: 添加功能
- fix: 修复 bug
- chore: 添加依赖项
- refactor: 重构代码,但是不添加功能
- wip: 添加功能,但未完成(work in progress)(未配置该指令,后续配置)
- style: 添加样式
- doc: 改变文档内容
- 推荐使用 vscode,这里配置了 vscode 相关的 eol,不然很容易产生 CRLF 文件
- 如果后续有测试环境和线上环境,请在
/config/environment
里的 env 文件里面编写,如果有公共配置项目,就直接写在根目录下的.env 文件中 - 关于 routes 文件夹下的路由,在 index.js 已经做了文件夹的文件扫描然后再导入,所以不需要自行编写 app.use 逻辑
- 本项目不需要每个地方都写 try catch 逻辑,在 app.js 中已经配置好了 express-async-errors 来进行全局异常处理(不然真的很蠢)
- 本地启动:yarn local(连接本地数据库)
- 连接 dev 环境:yarn dev(自测推荐)
- 连接 pro 环境:yarn pro(连接线上数据库,未配置)