an middleware

This commit is contained in:
Mark McGranaghan 2012-09-19 18:39:04 -07:00
parent 8cb4f1080a
commit b71b350973
2 changed files with 22 additions and 2 deletions

2
README
View File

@ -40,9 +40,7 @@ gobyexample.com signups
= topics
* web app
* middleware in general
* return status code
* log requests
* serve static files
* force https
* force canonical host

View File

@ -0,0 +1,22 @@
package main
import ("net/http"; "fmt")
func hello(res http.ResponseWriter, req *http.Request) {
res.Header().Set("Content-Type", "text/plain")
fmt.Fprintln(res, "Hello wrapped world")
}
func wrapMiddleware(f http.HandlerFunc) http.HandlerFunc {
return func(res http.ResponseWriter, req *http.Request) {
fmt.Println("before")
f(res, req)
fmt.Println("after")
}
}
func main() {
handler := wrapMiddleware(hello)
http.HandleFunc("/", handler)
http.ListenAndServe(":5000", nil)
}