Golang
Golang gin Middleware中间件
我第一次接触Middleware这个词是在php laravel的时候,Middleware有人翻 中间件也有人翻中介软件,常见的用途之一就是应用在身分验证的功能,我们在特定route设定Middleware,此时的Middleware可以想像是进来之前的检查哨,我们就不需要在一一自己设置,而是在route那边处理。
如果是使用vscode的朋友,此时可以点Default,就会跳去该程序码的function
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.POST("/", func(c *gin.Context) {
fmt.Println(c.GetPostFormArray("str1"))
})
r.Run(":8000")
}
这时候我们会看到Default的function如下
// Default returns an Engine instance with the Logger and Recovery middleware already attached.
func Default() *Engine {
debugPrintWARNINGDefault()
engine := New()
engine.Use(Logger(), Recovery())
return engine
}
所以我们可以得知,在不知不觉中,其实我们在使用gin.Default()返回时,就已经使用了Recovery和Logger这两个Middleware。
package main
import (
"fmt"
"time"
"github.com/gin-gonic/gin"
)
func LoggerHandler() gin.HandlerFunc {
return func(c *gin.Context) {
t := time.Now()
fmt.Printf("gogo %v \n", t)
}
}
func main() {
r := gin.Default()
r.Use(LoggerHandler())
//注册一个Middleware
r.GET("/", func(c *gin.Context) {
fmt.Println("HELLO")
})
r.Run(":8000")
}
这时候可以执行看看http://localhost:8000/
也确实看终端机输出有print了~
<<: [Day10] - Docker Compose 设定及操作介绍
>>: Day8 - 布署 GitHub 程序与串接聊天机器人 LINE Messaging API
前言: 之前都是一次性训练好模型,但是一旦资料太多要训练,动辄就是数小时,甚至几天 所以我打算改善训...
前言 在上一章节中,介绍了该如何使用man这个指令来查询指定的指令的用法,在这一章节中,笔者将继续的...
devise是一套使用者认证(Authentication)套件,是Rails社群中最广为使用的一套...
前言 加权指数和法人留仓那些都已经完毕了,现在回到个股的讯号灯。这次要做的是MA(移动平均数)的穿越...
安安 过了一周我又来了 首先需要先为自己与同学鼓掌撑过第一周✌️ 第二周开始就是介面地狱 每周第一天...