Run()
Negroni 有一个很好用的函数 Run
, Run
接收 addr 地址字符串 http.ListenAndServe.
- package main
- import (
- "github.com/urfave/negroni"
- )
- func main() {
- n := negroni.Classic()
- n.Run(":8080")
- }
未提供地址的情况下,会使用 PORT
系统环境变量, 若未定义该系统环境变量则会用预设的地址, 请参考 Run 详情说明。
一般来说使用 net/http
方法, 并且将 Negroni 当作处理器传入, 这样可定制化更佳, 例如:
- package main
- import (
- "fmt"
- "log"
- "net/http"
- "time"
- "github.com/urfave/negroni"
- )
- func main() {
- mux := http.NewServeMux()
- mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
- fmt.Fprintf(w, "Welcome to the home page!")
- })
- n := negroni.Classic() // 导入一些预设的中间件
- n.UseHandler(mux)
- s := &http.Server{
- Addr: ":8080",
- Handler: n,
- ReadTimeout: 10 * time.Second,
- WriteTimeout: 10 * time.Second,
- MaxHeaderBytes: 1 << 20,
- }
- log.Fatal(s.ListenAndServe())
- }