中间件是一个固定的函数签名,日后也许会有所调整,函数通过返回一个 bool
来判断是否执行下一个中间件。
type Middleware func(Ctx) bool
全局中间件
直接调用 Use
方法即可
package main
import (
"fmt"
"gitee.com/aurora-engine/aurora"
)
func Before() aurora.Middleware {
return func(ctx aurora.Ctx) bool {
fmt.Println("before")
return true
}
}
func main() {
a := aurora.NewAurora()
a.Use(Before())
a.Get("/", func() {
})
aurora.Run(a)
}
局部中间件
在注册函数的最后一个参数是一个可变参数,能给一个接口配置多个中间件
a.Get("/", func() {}, Before())
结构体中间件
结构体中间件,是作用在当前结构体的所有函数上面,不支持指定到具体某个函数上,如果需要特殊处理,还是选择函数模式。
a.Url("/", &TestServer{}, Before())
中间件处理中断
某个中间件如果逻辑处理失败,我们需要正常的对客户端做出响应,通过 aurora.Ctx
的 func (c Ctx) Return(value ...interface{})
来完成。
最后编辑: kuteng 文档更新时间: 2022-07-29 09:12 作者:kuteng