gin框架简单搭建一个MVC架构
Go.zip框架源码
实现了MVC架构 , 使用zap构建日志系统,gorm作为模型层。
main.go入口文件
package main
import (
"github.com/gin-gonic/gin"
"goweb/common"
"goweb/route"
)
func main() {
//根据输入字符串设置gin模式
gin.SetMode(common.CONFIG["mod"])
r := route.WebRun()
// Run("里面不指定端口号默认为8080")
r.Run(":" + common.CONFIG["httpport"])
}Route.go路由注册函数
package route
import (
"github.com/gin-contrib/sessions"
"github.com/gin-contrib/sessions/cookie"
"github.com/gin-gonic/gin"
"goweb/common/logger"
"goweb/common/middleware"
)
//路由注册函数
func WebRun() *gin.Engine {
// 创建路由
r := gin.Default()
r.Delims("{[", "]}")
//初始化日志配置参数
logger.Init("", "./logs/app.log", 0, 0, 0)
//注册日志记录中间件
r.Use(logger.GinLogger(), logger.GinRecovery(true))
// 创建基于cookie的存储引擎,参数是用于加密的密钥
store := cookie.NewStore([]byte("gogogowebweb123mysession"))
// 设置session中间件,参数mysession,指的是session的名字,也是cookie的名字
// store是前面创建的存储引擎,我们可以替换成其他存储引擎
r.Use(sessions.Sessions("mysession", store))
r.Use(middleware.Cors())
//注册前台路由组
r = IndexRouter(r)
//注册后台路由组
r = AdminRouter(r)
//定义静态资源路由
r.Static("/static", "./static")
//404文件
r.NoRoute(func(c *gin.Context) {
r.LoadHTMLGlob("app/error/views/**/*")
c.HTML(404, "error/404.html", gin.H{
"title": "页面404了",
})
})
return r
}可自定义注册全局中间件或方法中间件
//后台应用路由代码
package route
import (
"github.com/gin-gonic/gin"
admin "goweb/app/admin/controller"
"goweb/app/admin/middleware"
)
//后台路由组
func AdminRouter(r *gin.Engine) *gin.Engine {
//调用控制器结构体
loginC := &admin.LoginController{}
indexC := &admin.IndexController{}
//注册后台路由
AppAdmin := r.Group("/admin", middleware.AuthorityVerification(), func(ctx *gin.Context) {
//定义模板文件路径
r.LoadHTMLGlob("app/admin/views/**/*")
})
{
IndexController := AppAdmin.Group("/index")
{
IndexController.GET("/index", indexC.Index)
IndexController.GET("/console", indexC.Console)
}
AdminController := AppAdmin.Group("/login")
{
AdminController.GET("/index", loginC.Index)
AdminController.POST("/login", loginC.Login)
}
}
return r
}.......
目录结构


更多其它看源码...
-------------本文结束感谢您的阅读-------------
