正如您所说,Martini 中的中间件和其他中间件是按照定义的顺序调用的:首先是使用添加的中间件,然后是路由中间件,然后是路由处理程序。这是马提尼文档给出的中间件示例:// log before and after a requestm.Use(func(c martini.Context, log *log.Logger){ log.Println("before a request") c.Next() log.Println("after a request")})据此,如果您有中间件 A 和 B 以及路由 R,那么调用链将是这样的:func A() { // Do things before B func B() { // Do things before R func R() { // Do things in R } () // Do things after R }() // Do things after B}因此,根据您的需要,您需要在Next() 调用之前或之后在中间件中添加代码。