在fiber中需用路由级绑定替代app.use()实现精准中间件控制:单路由通过app.get("/path", middleware, handler)传入;路由组用app.group("/prefix", middleware)批量绑定;支持全局+分组+单路由三级嵌套,执行顺序严格按代码顺序。

要在Fiber中为特定路由精准控制中间件执行范围,避免全局污染或逻辑错位,必须跳过app.Use()这种全局限制方式,改用路由级绑定机制。
单个路由直接传入中间件函数
在调用app.Get、app.Post等方法时,把中间件函数作为参数紧跟在路径之后、处理器之前。
这一步操作起来很简单,直接把中间件函数名写在路由处理器前面就行。
例如:app.Get("/admin", authMiddleware, func(c *fiber.Ctx) error { return c.SendString("Admin only") })。
【authMiddleware必须返回error类型且签名符合func(*fiber.Ctx) error】,否则编译失败或运行时panic。
路由组内批量绑定中间件
当多个路由共享同一套前置逻辑(如/admin/*下全部需要鉴权),用Group更清晰高效。
第一步:调用app.Group("/admin")创建路由组,并在第二个参数位置传入中间件函数。
第二步:在返回的group对象上调用Get、Post等方法定义子路由。
第三步:这些子路由自动继承Group注册的中间件,且仅作用于该前缀路径下。
注意:Group中间件只对显式挂载在其下的路由生效,不会影响/app或/api等其他路径。
混合使用:全局+路由组+单路由三级嵌套
方法一:全局日志中间件 → app.Use(logger.New())
方法二:API路由组加JWT认证 → api := app.Group("/api", jwtAuth)
方法三:其中某条敏感路由再叠加IP白名单 → api.Get("/delete", ipWhitelist, func(c *fiber.Ctx) error { ... })
这三条链路层层包裹,执行顺序严格按代码书写顺序:logger → jwtAuth → ipWhitelist → handler。











