/midway-practice

使用 midway + koa + ORM + Restful 接口基础功能,应用服务基础功能,做到业务开发开箱即用。

Primary LanguageTypeScript

简介

使用 midway + koa + ORM + Restful 接口基础功能,应用服务基础功能,做到业务开发开箱即用。

实现功能:

  • 系统功能
    • 请求日志中间件
    • 统一响应中间件
    • 响应格式统一中间件
    • 定时任务
    • 请求参数验证
    • swagger 接入
    • JWT 验证
    • 添加通用工具类(日后拆除)
    • 增加 redis 相关配置
    • 封装 redis 工具类
    • 增加后台请求日志,保存到数据库中
  • ORM
    • 表结构生成
    • CRUD
    • 关联查询
    • 原始查询
    • query 日志
    • 事务
  • 部署
    • DockerFile 编写
    • docker-compose 编写
    • 生产环境部署优化
  • 单元测试
    • controller
    • service
    • task
  • 工程化
    • 添加 husky
      • 提交检查 commit 格式,运行单元测试和代码格式检查

使用

执行 ./sql/test.sql 初始化数据库

将 .env.local 文件重命名 .env 并且将配置修改正确

npm i

npm run dev

swagger 文档地址:http://127.0.0.1:7001/swagger-ui/index.html

根据数据库表快速生产 Midway Sequelize Entity

$ npx sequelize-auto-midway -h localhost -d yourDBname -u root -x yourPassword -p 13306  --dialect mysql -o ./src/app/entity --noInitModels true --caseModel c --caseProp c --caseFile c --indentation 1 -a ./additional.json

additional.json

{
  "timestamps": true,
  "paranoid": true
}

具体请参考 sequelize-auto-midway

生成数据库说明文件

$ npx db2md g -u root -p 3306 -pwd 123456 -h 127.0.0.1 test -o ./sql

更新记录

  • [2022-12-06]
    • 优化 docker 打包启动失败问题
  • [2022-12-06]
    • @midway 组件升级到 3.8.0,修改 sequelize 默认数据源获取方法
    • 新增 serverTimeout 配置, 定义服务端超时时间。
    • 去除 baseService getTransaction 方法
  • [2022-11-18] baseService 添加 createMany,count,getTransaction 方法
  • [2022-11-17] 添加自动化生产 Mysql 数据库表说明文件
  • [2022-11-10] 通用模块化,使用 happy-node-utils 集成