一,目錄結構:
二,程式碼
1,中介軟體程式碼
package middleware
import (
"fmt"
"github.com/gofiber/fiber/v2"
"industry/config"
)
// token校驗
func CheckUser(c *fiber.Ctx) error {
token:=c.Query("token")
fmt.Println("token:",token)
if token == "" {
return c.Status(200).JSON(config.Error("引數token不存在"))
} else {
if token == "123" {
var userId = 4
c.Locals("userId", userId)
} else {
return c.Status(200).JSON(config.Error("引數token錯誤"))
}
}
return c.Next()
}
2,控制器
func NewUserController() *UserController {
return &UserController{}
}
func (uc *UserController) GetUser(c *fiber.Ctx) error {
fmt.Println("hello","user")
userId := c.Locals("userId")
str2 := fmt.Sprintf("%v", userId)
fmt.Println(str2)
// 處理獲取使用者的邏輯
return c.SendString("獲取使用者資訊userId:"+str2)
}
func (uc *UserController) CreateUser(c *fiber.Ctx) error {
// 處理建立使用者的邏輯
userId := c.Locals("userId")
str2 := fmt.Sprintf("%v", userId)
fmt.Println(str2)
return c.SendString("建立使用者:"+str2)
}
3,路由:
package routes
import (
"github.com/gofiber/fiber/v2"
"industry/config"
"industry/controller"
"industry/middleware"
)
func SetupRoutes(app *fiber.App) {
//使用者模組
userController := controller.NewUserController()
user := app.Group("/user")
user.Get("/info" ,middleware.CheckUser, userController.GetUser)
user.Get("/add", userController.CreateUser)
//找不到路徑時的處理
app.Use(func(c *fiber.Ctx) error {
return c.Status(fiber.StatusNotFound).JSON(config.Error("不存在的訪問路徑"))
})
}
也可以把中介軟體新增給整組,如下:
//使用者模組
userController := controller.NewUserController()
user := app.Group("/user",middleware.CheckUser)
user.Get("/info" , userController.GetUser)
user.Get("/add", userController.CreateUser)