go语言MVC模式web开发框架go-mvc

Go-MVC

项目地址:https://github.com/jian1098/go-mvc

项目说明

go语言gin框架搭建的MVC模式(参考PHP语言Laravel和ThinkPHP框架结构)web开发框架项目,集成了数据库gorm、类型转换cast等常用包,以及一些代码示例;控制器层和路由层做了仿继承处理,方便添加统一的属性和方法,模型、模板、控制器、路由、常量、验证器、服务、全局日志、全局DB等都做了分离处理,分配到各个模块

运行环境

本项目测试环境为go 1.22.0,理论上 go version >= 1.20即可

目录结构

复制代码
|-- app										#开发主目录
|   |-- admin								#后台模块
|   |   `-- controllers						 #后台控制器
|   |       |-- adminController.go
|   |       |-- baseController.go
|   |       `-- homeController.go
|   |-- api									#api模块
|   |   `-- controllers						 #api控制器
|   |       |-- baseController.go
|   |       `-- indexController.go
|   |   `-- requests						 #api请求参数结构体
|   |   `-- responses						 #api响应结构体
|   |-- utils								#公共模块
|   |   |-- db.go
|   |   `-- zapLogger.go
|   |-- constants							 #常量目录
|   |   `-- Response.go
|   |-- middlewares							 #中间件目录
|   |   `-- Cors.go
|   |-- services							 #服务层目录
|   |   `-- UserServices.go
|   `-- models								 #模型结构体目录
|       `-- User.go
|-- .env									#环境配置
|-- go.mod
|-- go.sum
|-- main.go									#main.go
|-- routers									#路由模块
|   |-- adminRouter.go
|   |-- apiRouter.go
|   `-- baseRouter.go
|-- static									#静态文件
|   `-- js
|       `-- jquery.min.js
|-- templates								#模板文件
|    `-- admin
|       |-- home
|       |   `-- index.html
|       `-- index
|           `-- index.html
|-- runtimes								
|	 `-- log								#日志文件目录
|-- uploads								   	#上传文件目录

如何使用

下载源码

bash 复制代码
git clone https://github.com/jian1098/go-mvc.git

创建配置文件,并修改为你的配置

bash 复制代码
cd go-mvc
cp .env.example .env
vim .env

开启go mod

bash 复制代码
go env -w GO111MODULE=on

设置代理

bash 复制代码
go env -w GOPROXY="https://goproxy.cn"

安装依赖

bash 复制代码
go mod vendor

运行http服务

bash 复制代码
go run main.go

添加路由

routers目录下对应模块增加路由

访问API接口

请求路由以/api/开头, 例如:127.0.0.1:8080/api/index/demo

访问后台页面

请求路由以/admin/开头, 例如:127.0.0.1:8080/admin/home/index

第三方包

包名 用途说明
github.com/gin-gonic/gin gin框架
github.com/joho/godotenv 加载.env配置
go.uber.org/zap zap日志
github.com/spf13/cast 变量类型转换
github.com/jinzhu/gorm gorm数据库包
github.com/go-sql-driver/mysql mysql驱动,配合gorm使用
github.com/gookit/validate 验证器,支持验证场景和标签
github.com/dgrijalva/jwt-go jwt
相关推荐
Bigger4 小时前
Tauri (26)——托盘图标总对不上系统主题?一行 Template Image 搞定
前端·rust·app
kyriewen6 小时前
面试官问你:“AI 能写 80% 的代码了,公司为什么还需要你?”
前端·javascript·面试
甲维斯7 小时前
又升级咯!坦克大战2026,科技与复古并存!
前端·人工智能·游戏开发
搬砖的码农9 小时前
(08)为什么我的 Agent 一跑后台服务就卡死
前端·agent·ai编程
飘尘10 小时前
前端转全栈(Java 后端)必须要知道的:开发中的锁机制与分布式并发控制
前端·后端·全栈
亲亲小宝宝鸭10 小时前
前端性能监控:web-vitals
前端·性能优化·监控
陆枫Larry10 小时前
可滚动页面背景填不满:`height: 100vh` vs `min-height: 100vh`
前端
Patrick_Wilson10 小时前
Squash Merge 的血缘陷阱:为什么删掉的代码又活了过来
前端·git·程序员
kyriewen11 小时前
今天的科技圈,全在抢英伟达的饭碗
前端·面试·ai编程