MODULE-server 开发说明
module-server 模块的核心目的是完成某个业务模块的数据模型、数据库迁移管理,并为业务平台提供数据管理的接口服务。
代码说明:
- 项目使用 eggjs 框架作为代码基础,基本知识了解请查看文档:📖 快速熟悉 eggjs 框架;
- 项目脚手架示例:新项目在此基础上进行开发;
- 团队内部的代码规范标准及要求,最佳实践;
1)根据业务需求,完成数据模型定义
拉取最新的项目代码,在本地启动服务后即可开始工作和代码提交:
# 默认连接预览(preview)环境的数据库: database/config.json
pnpm run dev
⁉️ 如果你的工作涉及到数据库的变更:
-
首先按照 database/config.json 文件中的 development & test 环境信息,创建本地数据库账号及 database:
- 建议使用 MySQL 8.0 版本,与线上环境保持一致;
- 账号密码默认为: root / P@ssw0rd
- 手动创建本地需要的开发和测试数据库:pinjia_dev & pinjia_test
-
新建 migration 文件并执行迁移:
# 快速生成 migration 文件,也可以手动创建 npx sequelize migration:generate --name=create-users # 📝 创建或修改数据表结构, 记得补全注释信息 code database/migrations/${timestamp}-create-users.js # 执行 migrate 进行数据库变更,db:migrate:undo npx sequelize db:migrate
-
建议单独提交 schema 变更代码进行审阅,提交合并后,预览(preview)环境会自动进行同步变更;
- 破坏性的数据库变更需要进行审阅才可以发布;
- 本地无法对预览环境数据库直接运行迁移,无变更权限;
-
如果你想在开发时使用本地数据库,可以设置环境变量:
NODE_ENV=local pnpm run dev # 快捷命令:pnpm run local
🔖 项目负责人职责:完成数据库模型定义修改 & 审阅发布后,需要手动进行 API 文档 - 数据模型 的数据库导入覆盖。
深入了解:
2)API 文档先行,完成数据服务接口代码
在进行具体的接口开发任务时,需要遵循 API 文档先行 的开发方式;
- 开发中的接口在 Apifox 分支 preview 迭代更新,不允许直接修改 main 分支的接口;
- 在对应项目的接口管理中新增或修改已有接口,完成详细的接口说明和 mock 配置;
- 根据接口文档,完成具体的服务接口代码修改工作,提交代码审阅;
单元测试必须在提交审阅前完成,阅读教程。
🔖 项目负责人职责:在代码审阅完成及发布预览环境后,需要手动合并接口文档到 main 分支;
还有就是记得及时更新 API 文档的接口状态 [ 开发中/测试中/已发布 ]。
3)生产环境发布流程
云托管 CLI 工具文档:https://cloud.weixin.qq.com/cli/guide.html
pnpm install -g @wxcloud/cli
记得配置生产环境的必要环境变量,否则会无法启动,导致部署失败;
wxcloud migrate # 生产 Dockfile 以及 wxcloud.config.js 文件
wxcloud deploy # 部署密钥文件位置 ~/.wxcloudconfig
延伸文档:如何在本地进行容器调试