Golang gin框架中间件c.JSON返回结果后终止返回

gin框架中间件c.JSON返回结果后还是会继续执行之后的方法,我们可以用c.Abort()来终止后续的处理

go 复制代码
func MiddlewareFunction(c *gin.Context) {
    // 假设有某种条件下需要返回错误
    if someCondition {
        c.JSON(http.StatusBadRequest, gin.H{"error": "some error message"})
        c.Abort() // 终止后续处理
        return
    }
 
    // 如果没有错误,则继续后续处理
    c.Next() // 继续执行其他的middleware和handlers
}
 
func main() {
    r := gin.Default()
 
    // 使用MiddlewareFunction
    r.Use(MiddlewareFunction)
 
    // 其他的handlers
    r.GET("/", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{"message": "success"})
    })
 
    // 启动服务器
    r.Run()
}
相关推荐
源代码•宸9 小时前
GoLang八股(Go语言基础)
开发语言·后端·golang·map·defer·recover·panic
iso少年11 小时前
Go 语言并发编程核心与用法
开发语言·后端·golang
风送雨17 小时前
Go 语言进阶学习:第 2 周 —— 接口、反射与错误处理进阶
开发语言·学习·golang
峰上踏雪17 小时前
Go(Golang)Windows 环境配置关键点总结
开发语言·windows·golang·go语言
我不是8神17 小时前
go语言语法基础全面总结
开发语言·golang·xcode
qq_1728055918 小时前
Modbus Server 模拟平台之RTU协议
golang·modbus
源代码•宸18 小时前
Leetcode—1339. 分裂二叉树的最大乘积【中等】
开发语言·后端·算法·leetcode·golang·dfs
源代码•宸18 小时前
Leetcode—166. 加一【简单】new(big.Int)法
经验分享·算法·leetcode·职场和发展·golang·new.bigint
源代码•宸19 小时前
GoLang基础语法(go语言结构、go语言变量、go语言常量、go语言运算符)
开发语言·后端·golang
ghostwritten19 小时前
go.mod 与go.sum有什么区别?
开发语言·后端·golang