package main import ( "fmt" "github.com/kataras/iris/v12" "github.com/kataras/iris/v12/context" ) func main() { app := iris.New() //Handle就是自己定义请求方式后边跟路由,写匿名函数 app.Handle("GET", "/userInfo", func(context context.Context) { }) //正则表达式请求方式 app.Get("/hello/{name}", func(context context.Context) { name := context.Params().Get("name") //path :=context.Path() //将路由获取的所有内容返回到前段 //context.WriteString(path) context.HTML("<h1>" + name + "<h1>") }) //正则表达式对前段发来的数据进行一个类型的限制,大括号内左边为数据右边为限制类型 app.Get("/hello/{name:bool}", func(context context.Context) { asd, err := context.Params().GetBool("name") //path :=context.Path() //将路由获取的所有内容返回到前段 //context.WriteString(path) if err != nil { context.StatusCode(iris.StatusNonAuthoritativeInfo) return } if asd { context.WriteString("登录") } else { context.WriteString("未登录") } }) //正则表达式所支持的数据类型 app.Get("/RetRequest", func(context context.Context) { //处理git请求,请求的url为RetRequest path := context.Path() //获取当前请求路径 app.Logger().Info(path) //日志在golang的窗口打印当前路径 username := context.URLParam("username") //获取git请求的内容 password := context.URLParam("password") //获取git请求的内容 app.Logger().Info(username) app.Logger().Info(password) }) //处理from表单的数 app.Post("login", func(context context.Context) { name := context.PostValue("name") //获取post请求体中的form表单数据 pwd := context.PostValue("pwd") //获取post请求体中的form表单数据 fmt.Println(name) fmt.Println(pwd) }) //处理jason格式的数据 app.Post("postJson", func(context context.Context) { //json数据解析 var person Person //创建了一个结构体Person名字和前段传过来的一样 jsonObj := context.ReadJSON(person) //获取json数据 fmt.Println(jsonObj) }) //处理xml个数数据 app.Post("postXml", func(context context.Context) { var personXml Person xmlObj := context.ReadXML(personXml) context.Writef("", xmlObj) }) //给前端直接返回json数据 app.Get("getJson", func(contest context.Context) { contest.JSON(iris.Map{"message": "hello word", "requestCode": "200"}) }) //给前端返回xml格式数据 app.Get("getXml", func(contest context.Context) { contest.XML(Person{Name: "yangxin", Age: 123}) }) //路由分发主路由为users users := app.Party("/Users", func(context context.Context) { //执行下一级请求 context.Next() }) //done当你用户请求的任何一个方法后,再该请求中出现了context。next之后就会执行done这方法 users.Done( func(context context.Context) { context.Next() }) //路由分发到注册接口 users.Get("register", func(context context.Context) { //执行done方法 context.Next() }) //路由分发到登录接口 users.Post("login", func(context context.Context) { }) //done //监听端口8080,必须放在程序执行的后边 app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed)) } type Person struct { Name string Age int }