本系统意在设计成可以实现对 文章 和 标签 的管理,以及在前端页面上对文章内容等展示的形式,可以作为练习项目使用。
- 日志:
winston
、winston-daily-rotate-file
- orm:
prisma
- 数据库:
mysql
- 参数校验:
class-validator
- 配置读取:
dotenv
- 鉴权
- 跨域
- Typescript
- Express
- Vue3
- VueRouter4
- Vite
- TS
- NaiveUI
- 实现文章的增删改查接口 & 标签关联
- 实现标签的增删改查接口
- 分页逻辑封装
- 统一响应格式 & 响应方法封装 & 错误码封装
- 登录鉴权部分
- 文件上传部分 & 静态文件处理部分
- 配置文件读取
- 参数校验中间件
- 路由封装
- 日志
- 博客前端页面所需部分接口开发
- 登录 & 状态维持
- 文章管理 - 增删改查,富文本处理,图片上传,基本数据填写等
- 标签管理
- 首页文章列表
- 标签列表
- 文章内容页
- 关于页
- 标签过滤
- 归档
- 其他
因为使用 mac m1
芯片打包镜像,所以打包的时候需要指定平台类型docker build --platform=linux/amd64
,这样在镜像在服务器中运行的时候不会报错。
3个Dockerfile
分别配置的是前端、后端、数据库,期中包含映射的端口号和需要持久化的数据卷。
build.sh
:是本地打包Docker
镜像的脚本run.sh
:是通过拉取的镜像来启动容器的脚本,其中逻辑包含挂载数据卷和数据库挂载remove.sh
:快捷删除容器stop.sh
:快捷停止容器
构建的时候需要注意几个地方:
- 数据持久化
- 后端启动时,需要初始化 prisma
- 后端数据库的连接URL变化