beego框架 错误处理
在 web 开发的中时候,如果遇到错误,例如: 404, 500错误等等,我们一般都会展示一个错误页面提示用户,beego默认提供了一些内置的错误页面,本章主要介绍如使用错误页面和定制错误页面。
1. 默认错误处理
beego 框架默认支持 401、403、404、500、503 这几种错误的处理。
如果要跳转到错误页面,结束当前执行流程主要通过控制器的Abort函数实现。
例子:
func (this *MainController) Get() { // 调用Abort函数终止执行,参数是错误类型 this.Abort("500") // 其他处理逻辑 // ..... this.TplName = "index.tpl" }
默认情况,调用Abort会展示beego框架默认的错误页面。
2. 自定义错误处理
除了上面那几种错误类型,我们也可以自定义错误类型,自定义个性化的错误页面。
自定义错误处理步骤:
- 定义错误控制器
- 注册错误控制器
2.1. 定义错误控制器
package controllers import ( "fmt" "github.com/beego/beego/v2/server/web" ) // 定义错误控制器 type ErrorController struct { web.Controller } // 定义404错误, 调用例子: this.Abort("404") func (this *ErrorController) Error404() { // 模板参数 this.Data["content"] = "页面不见了" // 自定义404错误页面模板 this.TplName = "404.tpl" } // 定义500错误, 调用例子: this.Abort("500") func (this *ErrorController) Error500() { this.Data["content"] = "服务跑了" this.TplName = "500.tpl" } // 定义db错误, 调用例子: this.Abort("Db") func (this *ErrorController) ErrorDb() { this.Data["content"] = "数据库挂逼了" this.TplName = "dberror.tpl" }
提示: 自定义错误的函数名格式为: ErrorXXX , XXX就是我们要定义的错误类型,展示错误则调用this.Abort("XXX")
2.2. 注册错误控制器
自定义的错误控制器需要在 main.go 入口文件,向beego框架注册。
package main import ( _ "btest/routers" "btest/controllers" "github.com/beego/beego/v2/server/web" ) func main() { // 注册错误控制器 web.ErrorController(&controllers.ErrorController{}) web.Run() }
beego框架 文件上传下载:本章主要介绍 beego 如何处理文件的上传和下载。1. beego处理文件上传:Beego 控制器提供了两个很方便的函数来处理文件上传:GetFile(key string) (multipart.File, *multipart.FileHeader, error) 主要用于读取表单中的文件信息,可以根据这些信息来处理文件上传、过滤、保存文件等。