gin|gin group NoRoute
概述
使用 gin
配置路由的时候,经常会遇到典型的if else
场景:
对于指定路径,我希望走 A
HandlerFunc
, 对于未定义的其它路径,走 B
HandlerFunc
但是在实际配置 else
过程中(也就是未定义的其它路径)发现,
Engine
类型,有 NoRoute
方法,可以满足 if else
场景里的 else
但是对于 group
来说,没有 NoRoute
方法,无法处理这个 group
里面剩下未定义路径的 HandlerFunc
github 上面搜了搜,有 issuse
和对应的解决方法
issuse链接
预期
想要达到的效果如下(代码copy自 github)
show := router.Group("/show")
{
show.GET("/show/:filename", ShowFile)
show.NoRoute(ShowNoRoute)
}
how to do 【gin|gin group NoRoute】(代码copy自 github)
func main() {
router := gin.Default()
router.NoRoute(func(c *gin.Context) {
path := c.Request.URL.Path
method := c.Request.Method
fmt.Println(path)
fmt.Println(method)
if strings.HasPrefix(path, "/show") {
fmt.Println("ok")
}
})
router.Run()
}
推荐阅读
- 基于|基于 antd 风格的 element-table + pagination 的二次封装
- python自定义封装带颜色的logging模块
- 监控nginx
- Linux|Linux 服务器nginx相关命令
- Nginx|Nginx Tomcat 构造https服务应对苹果要求
- iOS【NotificationContent-App|iOS【NotificationContent-App Group共享】
- Nginx详细教程
- Nginx进阶(1)——nginx本地代理配置访问node服务
- linux操作集-配置keepalived+nginx实现双机热备
- vue的SEO优化方法一(prerender-spa-plugin预渲染)