2 回答
TA贡献1946条经验 获得超3个赞
我将回答我的问题,因为我找到了一种方法来处理找不到路由/找不到方法等问题。这个想法是使用 NoRoute/NoMethod 中的 context.Error() 在 gin 上下文中设置错误处理程序。这会在 c.Errors 中的错误切片中添加一个错误,然后可以在您的中间件函数中使用它。
func MyMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
//do something here
c.Next()
//do something based on error in c.
if c.Errors.Error() != nil {
//error case, get out
return
}
//else continue regular processing.
}
}
engine.NoRoute(func(c *gin.Context) {
c.JSON(404,
gin.H{"error": gin.H{
"key": "not allowed",
"description": "not allowed",
}})
c.Error(errors.New("Failed to find route")) //Set the error here.
})
希望能帮助到你。
- 2 回答
- 0 关注
- 190 浏览
添加回答
举报