# blog-gin-vue **Repository Path**: MiCodeC/blog-gin-vue ## Basic Information - **Project Name**: blog-gin-vue - **Description**: 基于gin+vue的简单博客文章发布系统 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-04-26 - **Last Updated**: 2022-05-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: Go语言, 反射, Gin ## README # 文章管理系统 大致看了下 golang 的基础篇,项目实践体验一把: 1. 管理系统实现前后端分离,Gin 框架实现管理系统服务的 Api 2. 通过 Goroutine 启动另一个 Gin 服务用于模板渲染展示页面(因结构简单且服务端渲染便于SEO) 3. 利用反射泛型编写一个通用的可配置的结构体构造函数 # 技术栈 服务端:gin + gorm + jwt + MySQL 管理系统:Vue2 + axios + element-UI + mavon-editor + vue-router + vuex 注意:由于是个人Blog,且管理员一个用户,因此不添加 casbin 做权限控制 # 项目结构 ## 服务端 ``` serve ├─api // 各api回调函数 │ ├──response // 各模块响应相关的结构体配置 │ │ ├──channel.go // channel模块相关 │ │ ├──user.go // channel模块相关 │ │ │ ├──article_upload.go │ ├──channel_add.go │ ├──channel_all.go │ ├──channel_del.go │ ├──channel_update.go │ ├──user_info.go │ ├──user_login.go │ ├──user_logout.go │ ├─config // 项目各模块的配置文件 │ ├──api.go // api 模块的配置 │ ├──jwt.go // jwt 模块的配置 │ ├──file.go // 文件的配置 │ ├──sql.go // sql 模块的配置,目前仅支持MySQL │ ├──user.go // 默认管理员配置 │ ├─files │ ├──markdowns // 保存文章markdown文件的目录 │ ├──htmls // 保存文章html文件的目录 │ │ ├─global // 全局变量 │ ├──global.go │ ├─initialize // 初始化工作 │ ├──gorm.go // 初始化数据库 │ ├──router.go // 初始化路由 │ ├─middleware // 中间件 │ ├──jwt.go // jwt认证 │ ├─model // 所有数据表相关配置(包含模型以及表操作方法) │ ├──article.go // 文章模型 │ ├──channel.go // 频道模型 │ ├──user.go // 管理员模型 │ ├─routers // 路由配置 │ ├──admin.go // 管理系统路由配置 │ ├─utils // 工具包 │ ├──api.go // api 工具包 │ ├──jwt.go // JWT 工具包 │ ├──md5.go // md5 工具包 │ ├──file.go // 文件工具包 │ ├──struct.go // 可配置默认值的结构体实例构造函数 │ │──go.mod │──go.sum │──main.go // 主程序文件 │ ``` ## 管理系统前端 ``` admin ├─public // 公共目录 │ ├──index.html │ ├─src │ ├──api // web请求目录 │ ├──assets // 静态资源目录 │ ├──components // 组件目录 │ ├──layout // 项目布局 │ ├──router // 路由配置 │ ├──store // vuex配置 │ ├──styles // 公共样式 │ ├──utils // 工具包 │ ├──views // 页面 │ ├──App.vue // 项目根组件 │ ├──main.js // 入口文件 │ ├─package.json // 项目信息 ├─vue.config.js // 项目配置 ├ ```