首页 > 其他分享 >go fiber: 多个全局中间件的执行顺序

go fiber: 多个全局中间件的执行顺序

时间:2024-11-16 12:29:50浏览次数:1  
标签:fiber err fmt after 中间件 Println go before

一,代码:

middleware.go

package middleware

import (
	"fmt"
	"github.com/gofiber/fiber/v2"
)

func Middle1(c *fiber.Ctx) error {
	fmt.Println("middle1 before")
	err:=c.Next()
	fmt.Println("middle1 after")
	return err
}

func Middle2(c *fiber.Ctx) error {
	fmt.Println("middle2 before")
	err:=c.Next()
	fmt.Println("middle2 after")
	return err
}

func Middle3(c *fiber.Ctx) error {
	fmt.Println("middle3 before")
	err:=c.Next()
	fmt.Println("middle3 after")
	return err
}

routes.go

func SetupRoutes(app *fiber.App) {
    //注意顺序
	app.Use(middleware.Middle3)
	app.Use(middleware.Middle2)
	app.Use(middleware.Middle1)
    ...

 

二,测试效果:

middle3 before
middle2 before
middle1 before

middle1 after
middle2 after
middle3 after

说明:在Next()之前的代码,按use的顺序执行,
在Next()之后的代码,按相反的顺序执行,

标签:fiber,err,fmt,after,中间件,Println,go,before
From: https://www.cnblogs.com/architectforest/p/18544754

相关文章

  • go fiber:路由中间件
    一,目录结构:二,代码1,中间件代码packagemiddlewareimport( "fmt" "github.com/gofiber/fiber/v2" "industry/config")//token校验funcCheckUser(c*fiber.Ctx)error{ token:=c.Query("token") fmt.Println("token:"......
  • django naive datetime问题
    naivedatetime问题,其实就是datetime数据没有携带时间就传递给了模型类现象:D:\anaconda3\envs\schedule_devops\lib\site-packages\django\db\models\fields_init_.py:1367:RuntimeWarning:DateTimeFieldNodeStopRecord.stop_timereceivedanaivedatetime(2024-11-1602:......
  • Let'sGoFurther - Chapter 6: SQL Migrations
      InstallingthemigratetoolTomanageSQLmigrationsinthisprojectwe’regoingtousethemigratecommand-line tool(whichitselfiswritteninGo).OnLinuxandWindows,theeasiestmethodistodownloadapre-builtbinaryandmove ittoalocat......
  • 通过MongoDB Atlas 实现语义搜索与 RAG——迈向AI的搜索机制
    目录通过MongoDBAtlas实现语义搜索与RAG——迈向AI的搜索机制一、引言二、语义搜索与MongoDBAtlas的背景三、MongoDBAtlas的向量搜索功能1.向量搜索的实现方式2.典型操作示例四、RAG在MongoDBAtlas的应用1、RAG是什么2、RAG的实现过程3、RAG的实际应......
  • Hyperf 微服务与 MongoDB 日志记录
    以下是关于在Hyperf微服务中使用MongoDB记录用户操作日志的相关技术详解: 一、Hyperf框架简介Hyperf是基于Swoole协程的高性能PHP微服务框架,它提供了诸多便捷的功能和组件,方便开发者快速构建高效、稳定的微服务应用。在微服务架构中,日志记录是非常重要的一环,有助于排查问题......
  • django 数据库ORM通用的公共函数
    通用查询1、公共函数:defgeneric_query(model,filter_kwargs=None,order_by=None,limit=None,aggregate=None,annotate=None):"""通用的DjangoORM查询函数。:parammodel:Django模型类:paramfilter_kwargs:过滤条件字典:paramorder_by:......
  • (mongodb副本集) PSA模式添加、修改节点
    (mongodb副本集)PSA模式添加、修改节点PSA模式介绍PSA模式(Primary-Secondary-Arbiter)是MongoDB复制集中的一种架构配置。在这种模式下,复制集由一个主节点(PRIMARY)、一个从节点(SECONDARY)和一个仲裁者节点(ARBITER)组成。在MongoDB的复制集中,仲裁者节点(Arbiter)是一种特殊类型的节点,......
  • (mongodb副本集) PSA模式添加、修改节点
    (mongodb副本集)PSA模式添加、修改节点PSA模式介绍PSA模式(Primary-Secondary-Arbiter)是MongoDB复制集中的一种架构配置。在这种模式下,复制集由一个主节点(PRIMARY)、一个从节点(SECONDARY)和一个仲裁者节点(ARBITER)组成。在MongoDB的复制集中,仲裁者节点(Arbiter)是一种特殊类型的节点,......
  • (mongodb副本集) PSA模式添加、修改节点
    (mongodb副本集)PSA模式添加、修改节点PSA模式介绍PSA模式(Primary-Secondary-Arbiter)是MongoDB复制集中的一种架构配置。在这种模式下,复制集由一个主节点(PRIMARY)、一个从节点(SECONDARY)和一个仲裁者节点(ARBITER)组成。在MongoDB的复制集中,仲裁者节点(Arbiter)是一种特殊类型的节点,......
  • GOAT‘S AI早鸟报Part4
    欢迎后台......