项目架构
开发模式
通过 React(前端)+ nginx(代理) + koa2(服务端) + mysql(数据库暂未用到) + docker(项目部署)
Node
- 服务端:需要启动服务端(默认端口为 8000)
- 基于原生 / koa2 框架两种模式搭建 server 开发环境
- 原生
- bin:启动服务入口,引入 app 配置
- app:把 数据 传输给 不同路由组
- src/controller:数据库 api:增删改查
- src/model:封装 结果数据 结构模型
- src/router:不同路由组 返回 数据 和 数据库 的操作后的结果 => 浏览器
- conf:mysql 配置(数据库)
- db:启动 mysql 连接(数据库)
- Koa2
- 基于 Koa2 脚手架搭箭 server 端
- 添加 src/controller:数据库 api:增删改查
- 添加 src/model:封装 结果数据 结构模型
- 添加 src/router:不同路由组 返回 数据 和 数据库 的操作后的结果 => 浏览器
- 添加 conf:mysql 配置(数据库)
- 添加 db:启动 mysql 连接(数据库)
- 原生
- 关联 node 层与 mysql 数据库,通过 sql 语句数据操作
- 基于原生 / koa2 框架两种模式搭建 server 开发环境
Docker
- 部署前端应用:docker 容器化(建立 前端 与 服务端+数据库 通信)
- 建立 React 与 Nginx 的前端容器化
- 编写 nginx.conf 对 nginx 进行反向代理,使用 URL rewrite 文件定向
- 编写 dockerfile 构建前端项目镜像
(因开发环境引用本地第三方库,所以 docker 中未进行 npm insatll 打包,而是直接对编译后的文件进行容器化部署) 通过多层构建 Dockerfile.multi 优化镜像体积 建立 koa2 与 mysql 的 Node 应用容器化 通过 network 建立容器通信 编写 dockerfile,创建 Node 与 mysql 的 镜像 * 编写 docker component 同时开启多容器服务