/express-blog

基于Express、TS、Prisma、Vue3、NaiveUI实现,本系统意在设计成可以实现对 文章 和 标签 的管理,以及在前端页面上对文章内容等展示的形式,可以作为练习项目使用

Primary LanguageTypeScript

Express-Blog 简易系统

本系统意在设计成可以实现对 文章 和 标签 的管理,以及在前端页面上对文章内容等展示的形式,可以作为练习项目使用。

技术栈

后端技术栈

  • 日志:winstonwinston-daily-rotate-file
  • orm:prisma
  • 数据库:mysql
  • 参数校验:class-validator
  • 配置读取:dotenv
  • 鉴权
  • 跨域
  • Typescript
  • Express

后台管理-前端技术栈

  • Vue3
  • VueRouter4
  • Vite
  • TS
  • NaiveUI

开发计划

后端计划

  • 实现文章的增删改查接口 & 标签关联
  • 实现标签的增删改查接口
  • 分页逻辑封装
  • 统一响应格式 & 响应方法封装 & 错误码封装
  • 登录鉴权部分
  • 文件上传部分 & 静态文件处理部分
  • 配置文件读取
  • 参数校验中间件
  • 路由封装
  • 日志
  • 博客前端页面所需部分接口开发

后台前端计划

  • 登录 & 状态维持
  • 文章管理 - 增删改查,富文本处理,图片上传,基本数据填写等
  • 标签管理

博客前端计划

  • 首页文章列表
  • 标签列表
  • 文章内容页
  • 关于页
  • 标签过滤
  • 归档
  • 其他

Docker 相关

因为使用 mac m1 芯片打包镜像,所以打包的时候需要指定平台类型docker build --platform=linux/amd64,这样在镜像在服务器中运行的时候不会报错。

3个Dockerfile分别配置的是前端、后端、数据库,期中包含映射的端口号和需要持久化的数据卷。

  • build.sh:是本地打包Docker镜像的脚本
  • run.sh:是通过拉取的镜像来启动容器的脚本,其中逻辑包含挂载数据卷和数据库挂载
  • remove.sh:快捷删除容器
  • stop.sh:快捷停止容器

构建的时候需要注意几个地方:

  • 数据持久化
  • 后端启动时,需要初始化 prisma
  • 后端数据库的连接URL变化