随笔分类 - gin
go语言应用最广的web框架
摘要:一,安装gin $ go get github.com/gin-gonic/gin@latest 二,安装zap $ go get -u go.uber.org/zap 三,安装validator $ go get -u github.com/go-playground/validator/v10
阅读全文
摘要:一,需求说明: 我们的go程序的访问日志用了zap的BufferedWriteSyncer,默认一分钟后写入到磁盘,如果这时候go应用发生意外退出,则日志可能不能落盘,所以gin退出前,要把未执行的工作先结束才行 二,代码例子: package main import "C" import ( "f
阅读全文
摘要:一,代码: 1,global/accessLogger.go 初始化全局变量 package global import ( "go.uber.org/zap" "go.uber.org/zap/zapcore" "os" "time" ) var ( LogFileAccess *os.File
阅读全文
摘要:一,定义格式类 主要是两个方法: Success和Failed global/result.go package global import ( "github.com/gin-gonic/gin" "time" ) //返回的结果的内容: type ResultCont struct { Stat
阅读全文
摘要:一,中间件代码 这里我们演示一个例子:判断用户是否登录后,传递参数给controller func AuthCheck() gin.HandlerFunc { return func(c *gin.Context) { //从c得到参数后进行判断 isLogin:=1 userId:=100 if
阅读全文
摘要:一,常用的三个作用范围 1, 作用顺序: 实际中间件在工作时,按照注册顺序,路由前处理顺序为由前往后,后处理则由后往前 2,作用范围: 全局中间件: 该中间件以下的路由都可以生效 组路由中间件:对提定的路由组生效 单个路由中间件:对指定的单个路由生效 二,代码例子: 1,中间件代码: package
阅读全文
摘要:一,自定义异常 global/customError.go package global // 自定义错误类型 type CustomError struct { Code int Error error } 二,抛出异常 我们在gorm的自定义log中已经处理过数据库的异常,所以在查询遇到erro
阅读全文
摘要:一,代码 1,global/validator.go package global import "github.com/go-playground/validator/v10" //存放GetMessages()方法 type Validator interface { GetMessages()
阅读全文
摘要:一,安装第三方库: $ go get -u github.com/go-playground/validator/v10 go: downloading github.com/go-playground/validator/v10 v10.24.0 go: downloading github.co
阅读全文
摘要:一,得到get参数 1,代码: //得到列表 func (ic *ImageController) List(c *gin.Context) { // 不带缺省值 a := c.Query("a") // 带缺省值 d := c.DefaultQuery("d", "dd") fmt.Println
阅读全文
摘要:一,安装zap $ go get -u go.uber.org/zap go: downloading go.uber.org/zap v1.27.0 go: downloading go.uber.org/multierr v1.10.0 go: downloading go.uber.org/m
阅读全文
摘要:一,代码: 1,routes/route.go package routes import ( "fmt" "github.com/gin-gonic/gin" "imagebank/controller" "imagebank/global" "runtime/debug" "time" ) fu
阅读全文
摘要:一,目录结构: 二,代码: 1,controller/ImageController.go package controller import ( "github.com/gin-gonic/gin" "net/http" ) type ImageController struct{} func N
阅读全文
摘要:一,创建项目 创建目录: $ mkdir imagebank $ cd imagebank/ 创建项目: $ go mod init imagebank go: creating new go.mod: module imagebank 引入gin第三方库 liuhongdi@lhdpc:/data
阅读全文
浙公网安备 33010602011771号