Golang 转生到web世界 - gin Middleware中间件

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

IOS、Python自学心得30天 Day-9 模组训练改善-1

前言: 之前都是一次性训练好模型,但是一旦资料太多要训练,动辄就是数小时,甚至几天 所以我打算改善训...

第6章:基本操作文字档案介绍

前言 在上一章节中,介绍了该如何使用man这个指令来查询指定的指令的用法,在这一章节中,笔者将继续的...

Day-20 : devise 安装 part 1

devise是一套使用者认证(Authentication)套件,是Rails社群中最广为使用的一套...

【D24】制作讯号灯#7:制作个股的MA灯号

前言 加权指数和法人留仓那些都已经完毕了,现在回到个股的讯号灯。这次要做的是MA(移动平均数)的穿越...

CMoney第八届菁英软件工程师战斗营_Week 2

安安 过了一周我又来了 首先需要先为自己与同学鼓掌撑过第一周✌️ 第二周开始就是介面地狱 每周第一天...