前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >gin框架之中间件

gin框架之中间件

作者头像
大话swift
发布2020-03-12 18:18:27
3690
发布2020-03-12 18:18:27
举报
文章被收录于专栏:大话swift大话swift
代码语言:javascript
复制
package main
import (  "fmt"  "github.com/gin-gonic/gin"  "net/http")
func MyMiddleware(c *gin.Context) {  fmt.Println("MyMiddleware")  c.Next()}func main() {  router := gin.Default()  router.POST("/upload", func(c *gin.Context) {    file, _ := c.FormFile("file")
    // 上传文件至指定目录    if err := c.SaveUploadedFile(file, "./upload/"+file.Filename); err != nil {      fmt.Println(err)    }    c.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", file.Filename))  })  router.POST("/upload/multi", func(c *gin.Context) {    // Multipart form    form, _ := c.MultipartForm()    files := form.File["file[]"]
    for _, file := range files {      if err := c.SaveUploadedFile(file, "./upload/"+file.Filename); err != nil {        fmt.Println(err)      }    }    c.String(http.StatusOK, fmt.Sprintf("%d files uploaded!", len(files)))  })    //使用自定义的中间件,后面额路由请求都会受到该中间件的限制  router.Use(MyMiddleware)  router.GET("/middleware", func(context *gin.Context) {
  })  router.Run(":8080")}

我们为什么要使用中间件,中间件有什么作用呢?有的时候我们为了统一拦截请求,会在路由上增加中间件用于限制用户的请求。HTTP 中间件提供一个方便的机制来过滤进入应用程序的 HTTP 请求,例如,认证中间件默认包含了一个中间件来检验用户身份验证,如果用户没有经过身份验证,中间件会将用户导向登录页面,然而,如果用户通过身份验证,中间件将会允许这个请求进一步继续前进。如何自定义中间件?下面就是一个中间件的示例。

代码语言:javascript
复制
func MyMiddleware(c *gin.Context) {  fmt.Println("MyMiddleware")  c.Next()}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大话swift 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档