美文网首页beego
自定义过滤器

自定义过滤器

作者: 寒云暮雨 | 来源:发表于2019-05-06 13:10 被阅读0次

有的时候我们需要进行权限判断,我们可以定义过滤器进行限制
beego.InsertFilter(pattern string, position int, filter FilterFunc, params ...bool)


var FilterUser = func(ctx *context.Context) {
    s := ctx.Request.RequestURI
    fmt.Println(s)
}

func main() {
    _ = orm.RegisterDataBase("default", "mysql", "root:@tcp(127.0.0.1:3306)/shenshen?charset=utf8", 30)
    _ = orm.RunSyncdb("default", false, true)
    //o := orm.NewOrm()
    //_ = o.Using("default") //可以不指定

    beego.InsertFilter("/id/:id([0-9]+)",
        beego.BeforeRouter, FilterUser)
    beego.Run()
}

顾虑的地方
BeforeStatic 静态地址之前
BeforeRouter 寻找路由之前
BeforeExec 找到路由之后,开始执行相应的 Controller 之前
AfterExec 执行完 Controller 逻辑之后执行的过滤器
FinishRouter 执行完逻辑之后执行的过滤器

代码示例中,我在入口进行了过滤,同理,我们利用这种方法进行路由分组,根据路由前缀进行过滤判断

相关文章

网友评论

    本文标题:自定义过滤器

    本文链接:https://www.haomeiwen.com/subject/xvyroqtx.html