1.参数配置
1).在配置文件中设置基本配置
appname = testPoject
httpport = 8080
runmode = dev
sessionon = true
[dev]
httpport = 8080
[prod]
httpport = 8088
//允许哪些后缀名的静态文件进行 gzip 压缩,默认支持 .css 和 .js
StaticExtensionsToGzip = .css, .js
include "app2.conf"
2).在代码中设置APP配置(在main.go中beego.Run()之前添加)
(1).配置应用名称
beego.BConfig.AppName = "testPoject"
(2).配置开发环境
beego.BConfig.RunMode = "dev"
(3).设置异常恢复,出现异常的时候通过recover恢复过来
beego.BConfig.RecoverPanic = true
(4).是否开启 gzip 支持,默认不支持
beego.BConfig.EnableGzip = true
(5).是否显示系统错误信息,默认为true
beego.BConfig.EnableErrorsShow = true
(6).是否将错误信息进行渲染,默认值为 true
beego.BConfig.EnableErrorsRender= true
3).在代码中设置Web配置(在main.go中beego.Run()之前添加)
(1).是否模板自动渲染,默认值为 true
beego.BConfig.WebConfig.AutoRender = true
(2).是否模板自动渲染,默认值为 true
beego.BConfig.WebConfig.EnableDocs = true
(3).静态文件目录设置,默认是static
beego.SetStaticPath("/img","文件名")
(4).允许哪些后缀名的静态文件进行 gzip 压缩,默认支持 .css 和 .js
beego.BConfig.WebConfig.StaticExtensionsToGzip = []string{".css", ".js"}
(5).是否开启 XSRF,默认为 false
beego.BConfig.WebConfig.EnableXSRF = false
(6).设置 XSRF过时间,默认不过期
beego.BConfig.WebConfig.XSRFExpire = 0
4).监听配置(在main.go中beego.Run()之前添加)
(1).是否开启热升级,默认是 false,关闭热升级
beego.BConfig.Listen.Graceful=false
(2).设置 HTTP 的超时时间,默认是 0,不超时
beego.BConfig.Listen.ServerTimeOut=0
(3).应用监听端口,默认为 8080
beego.BConfig.Listen.HTTPPort = 8080
(4).是否启用 HTTPS,默认是 false 关闭
beego.BConfig.Listen.EnableHTTPS = false
(5). HTTPS的端口,默认10443
beego.BConfig.Listen.HTTPSPort = 10443
(6).配置HTTPS的ssl 证书路径
beego.BConfig.Listen.HTTPSCertFile = "conf/ssl.crt"
(7).配置HTTPS的ssl证书 keyfile 的路径
beego.BConfig.Listen.HTTPSKeyFile = "conf/ssl.key"
5).session配置(在main.go中beego.Run()之前添加)
(1).session 是否开启,默认是 false
beego.BConfig.WebConfig.Session.SessionOn = false
6).log配置(在main.go中beego.Run()之前添加)
(1).是否输出日志到 Log,默认在 prod 模式下不会输出日志,默认为 false 不输出日志
beego.BConfig.Log.AccessLogs = false
(2).是否在日志里面显示文件名和输出日志行号,默认 true
beego.BConfig.Log.FileLineNum = true
(3).日志输出配置
beego.BConfig.Log.Outputs["console"] = ""
2.路由配置
1).get和post请求
(1).get请求
beego.Get("/",func(ctx *context.Context){
ctx.Output.Body([]byte("你好"))
})
(2).post请求
beego.Post("/alice",func(ctx *context.Context){
ctx.Output.Body([]byte("你好"))
})
(3).支持get和post
beego.Any("/foo",func(ctx *context.Context){
ctx.Output.Body([]byte("你好"))
})
2).通过正则表达式匹配路由
(1).beego.Router("/api/:id", &controllers.RController{})
类型
此时请求/api/123,请求成功,id为123
(2).beego.Router("/api/:id([0-9]+)", &controllers.RController{})
类型
id必须为数字,此时请求/api/123,请求成功,id为123
(3).beego.Router("/api/:id([\\w]+)", &controllers.RController{})
类型
id可以是字符串,此时请求/api/test,请求成功,id为test
(4).beego.Router("/api/:id([\\w]+)", &controllers.RController{})
类型
id是int类型,此时请求/api/123,请求成功,id为123
(5).beego.Router("/api/*", &controllers.RController{})
类型
所有都能匹配,此时请求/api/123.png,此时变量":splat"值为123.png
(6).beego.Router("/api/*.*", &controllers.RController{})
类型
有后缀的都可配置,此时请求/api/123.png,此时变量":path"值为"123", “:ext"值为"png”
在代码中使用this.Ctx.Input.Param(":id")
取到id的值
3).自定义路由方法
4).路由注解(在runmode = dev才能生效)
从 beego 1.3 版本开始支持了注解路由,用户无需在 router 中注册路由
只需要 Include 相应地 controller,然后在 controller 的 method 方法上面写上 router 注释(// @router)就可以了