1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-25 20:51:29 +00:00

add comments for middleware packages, fix typo error

This commit is contained in:
傅小黑 2014-01-17 16:03:01 +08:00
parent 91d75e8925
commit 32799bc259
3 changed files with 18 additions and 8 deletions

View File

@ -221,7 +221,7 @@ func Run() {
middleware.VERSION = VERSION middleware.VERSION = VERSION
middleware.AppName = AppName middleware.AppName = AppName
middleware.RegisterErrorHander() middleware.RegisterErrorHandler()
if EnableAdmin { if EnableAdmin {
go BeeAdminApp.Run() go BeeAdminApp.Run()

View File

@ -61,6 +61,7 @@ var tpl = `
</html> </html>
` `
// render default application error page with error and stack string.
func ShowErr(err interface{}, rw http.ResponseWriter, r *http.Request, Stack string) { func ShowErr(err interface{}, rw http.ResponseWriter, r *http.Request, Stack string) {
t, _ := template.New("beegoerrortemp").Parse(tpl) t, _ := template.New("beegoerrortemp").Parse(tpl)
data := make(map[string]string) data := make(map[string]string)
@ -175,13 +176,14 @@ var errtpl = `
</html> </html>
` `
// map of http handlers for each error string.
var ErrorMaps map[string]http.HandlerFunc var ErrorMaps map[string]http.HandlerFunc
func init() { func init() {
ErrorMaps = make(map[string]http.HandlerFunc) ErrorMaps = make(map[string]http.HandlerFunc)
} }
//404 // show 404 notfound error.
func NotFound(rw http.ResponseWriter, r *http.Request) { func NotFound(rw http.ResponseWriter, r *http.Request) {
t, _ := template.New("beegoerrortemp").Parse(errtpl) t, _ := template.New("beegoerrortemp").Parse(errtpl)
data := make(map[string]interface{}) data := make(map[string]interface{})
@ -199,7 +201,7 @@ func NotFound(rw http.ResponseWriter, r *http.Request) {
t.Execute(rw, data) t.Execute(rw, data)
} }
//401 // show 401 unauthorized error.
func Unauthorized(rw http.ResponseWriter, r *http.Request) { func Unauthorized(rw http.ResponseWriter, r *http.Request) {
t, _ := template.New("beegoerrortemp").Parse(errtpl) t, _ := template.New("beegoerrortemp").Parse(errtpl)
data := make(map[string]interface{}) data := make(map[string]interface{})
@ -215,7 +217,7 @@ func Unauthorized(rw http.ResponseWriter, r *http.Request) {
t.Execute(rw, data) t.Execute(rw, data)
} }
//403 // show 403 forbidden error.
func Forbidden(rw http.ResponseWriter, r *http.Request) { func Forbidden(rw http.ResponseWriter, r *http.Request) {
t, _ := template.New("beegoerrortemp").Parse(errtpl) t, _ := template.New("beegoerrortemp").Parse(errtpl)
data := make(map[string]interface{}) data := make(map[string]interface{})
@ -232,7 +234,7 @@ func Forbidden(rw http.ResponseWriter, r *http.Request) {
t.Execute(rw, data) t.Execute(rw, data)
} }
//503 // show 503 service unavailable error.
func ServiceUnavailable(rw http.ResponseWriter, r *http.Request) { func ServiceUnavailable(rw http.ResponseWriter, r *http.Request) {
t, _ := template.New("beegoerrortemp").Parse(errtpl) t, _ := template.New("beegoerrortemp").Parse(errtpl)
data := make(map[string]interface{}) data := make(map[string]interface{})
@ -248,7 +250,7 @@ func ServiceUnavailable(rw http.ResponseWriter, r *http.Request) {
t.Execute(rw, data) t.Execute(rw, data)
} }
//500 // show 500 internal server error.
func InternalServerError(rw http.ResponseWriter, r *http.Request) { func InternalServerError(rw http.ResponseWriter, r *http.Request) {
t, _ := template.New("beegoerrortemp").Parse(errtpl) t, _ := template.New("beegoerrortemp").Parse(errtpl)
data := make(map[string]interface{}) data := make(map[string]interface{})
@ -262,15 +264,18 @@ func InternalServerError(rw http.ResponseWriter, r *http.Request) {
t.Execute(rw, data) t.Execute(rw, data)
} }
// show 500 internal error with simple text string.
func SimpleServerError(rw http.ResponseWriter, r *http.Request) { func SimpleServerError(rw http.ResponseWriter, r *http.Request) {
http.Error(rw, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) http.Error(rw, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
} }
// add http handler for given error string.
func Errorhandler(err string, h http.HandlerFunc) { func Errorhandler(err string, h http.HandlerFunc) {
ErrorMaps[err] = h ErrorMaps[err] = h
} }
func RegisterErrorHander() { // register default error http handlers, 404,401,403,500 and 503.
func RegisterErrorHandler() {
if _, ok := ErrorMaps["404"]; !ok { if _, ok := ErrorMaps["404"]; !ok {
ErrorMaps["404"] = NotFound ErrorMaps["404"] = NotFound
} }
@ -292,6 +297,8 @@ func RegisterErrorHander() {
} }
} }
// show error string as simple text message.
// if error string is empty, show 500 error as default.
func Exception(errcode string, w http.ResponseWriter, r *http.Request, msg string) { func Exception(errcode string, w http.ResponseWriter, r *http.Request, msg string) {
if h, ok := ErrorMaps[errcode]; ok { if h, ok := ErrorMaps[errcode]; ok {
isint, err := strconv.Atoi(errcode) isint, err := strconv.Atoi(errcode)

View File

@ -2,16 +2,19 @@ package middleware
import "fmt" import "fmt"
// http exceptions
type HTTPException struct { type HTTPException struct {
StatusCode int // http status code 4xx, 5xx StatusCode int // http status code 4xx, 5xx
Description string Description string
} }
// return http exception error string, e.g. "400 Bad Request".
func (e *HTTPException) Error() string { func (e *HTTPException) Error() string {
// return `status description`, e.g. `400 Bad Request`
return fmt.Sprintf("%d %s", e.StatusCode, e.Description) return fmt.Sprintf("%d %s", e.StatusCode, e.Description)
} }
// map of http exceptions for each http status code int.
// defined 400,401,403,404,405,500,502,503 and 504 default.
var HTTPExceptionMaps map[int]HTTPException var HTTPExceptionMaps map[int]HTTPException
func init() { func init() {