🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 有三种路由:**固定路由、正则路由、自动路由** ## 固定路由: * #### 一个固定的路由,一个控制器,然后根据用户请求方法不同请求控制器中对应的方法 * #### `beego.Router("/", &controllers.MainController{})` * ####` beego.Router("/user", &controllers\_user.UserController{})` * ####` beego.Router("/hello", &controllers\_user.Hello{})` #### 然后根据请求的方法,比如get请求,去对应的controller里找对应的方法 ## 正则路由: * #### `beego.Router(“/api/?:id”, &controllers.RController{})` * #### 默认匹配 //例如对于URL”/api/123”可以匹配成功,此时变量”:id”值为”123” * #### `beego.Router(“/api/:id”, &controllers.RController{})` * #### 默认匹配 //例如对于URL”/api/123”可以匹配成功,此时变量”:id”值为”123”,***但URL”/api/“匹配失败*** * #### :id(\[0-9\]+) 或者 :id(\[\\d\]+) 或者 🆔int * #### :id(\[\\w\]+) 或者 :username:string *\*\* \\需要转义\*\** * #### 获取: * #### `this.Ctx.Input.Param(":id")` * #### `this..GetString(":id")` #### * #### 正则部分: * #### . 匹配除换行符以外的任意字符 * #### \\w 匹配字母或数字或下划线 等价于 '\[^A-Za-z0-9\_\]'。 * #### \\d 匹配数字 #### ## 自动路由: * #### 注册路由的时候不需要指定url,只需要注册控制器即可: * #### beego.AutoRouter(&controllers.UserController{}) * #### 使用的时候得按规则来 * #### /控制器名/方法名/后面的都是参数。。。 * #### /user/get/123/456 会访问UserController下的get方法,两个参数是123,456 * #### TestUserController -- \> testuser ## **自定义路由**: * #### 注册路由的时候可以指定第三个参数,这个参数就是用来自定义路由的 * #### 用法: method :函数名 * #### post:Login post请求的时候访问Login函数 * #### get:User get请求的时候访问User函数 * #### \*:LoginOut 所有的请求方法都访问LoginOut函数 * #### put:UpdateFile put请求的时候访问UpdateFile函数 * #### get,post:Login get和post请求的时候访问Login函数 * #### 可用的 HTTP Method: #### \*: 包含以下所有的函数 #### get: GET 请求 #### post: POST 请求 #### put: PUT 请求 #### delete: DELETE 请求 #### patch: PATCH 请求 #### options: OPTIONS 请求 #### head: HEAD 请求 ## beego路由用法举例: * #### 默认的get请求对应Get方法,post请求对应Post方法 * #### beego.Router("/", &controllers.MainController{}) * #### 给请求指定自定义方法,默认方法将失效 * #### beego.Router("/login", &controllers.MyController{}, "get:Login;post:Register") * #### 多个请求访问一个方法 * #### beego.Router("/getandpost", &controllers.MyController{}, "get,post:Login") * #### 所有请求访问一个方法 * #### beego.Router("/all", &controllers.MyController{}, "\*:Login")