我们可以在路由映射函数执行之前做一些别的操作,比如记录下日志,
func WriterLog() func(c *gin.Context) {
return func(c *gin.Context) {
fmt.Println("记录日志")
c.Next()
}
}
然后我们在路由里面使用他
func main() {
r := gin.Default()
//用户模块
userRouter := r.Group("/user")
userRouter.Use(WriterLog())
userRouter.POST("/login", user.Login)
userRouter.POST("/register", user.Register)
userRouter.POST("/editor", user.Editor)
userRouter.POST("/log/out", user.LogOut)
userRouter.POST("/set/password", user.SetPassword)
//文章模块
articleRouter := r.Group("/article")
articleRouter.POST("/add", article.Add)
articleRouter.POST("/update", article.Update)
articleRouter.POST("/list", article.List)
articleRouter.POST("/delete", article.Delete)
r.Run(":8000")
}
同样我们也可以用中间件来校验我们的登录状态等等。
设置静态路由
func main() {
router := gin.Default()
router.Static("/assets", "./assets")
router.StaticFS("/more_static", http.Dir("my_file_system"))
router.StaticFile("/favicon.ico", "./resources/favicon.ico")
// Listen and serve on 0.0.0.0:8080
router.Run(":8080")
}