我有这个带有多路复用器的路由器功能:
func InitRouter() {
r := http.NewServeMux()
r.HandleFunc("/{id}", getWords)
log.Fatal(http.ListenAndServe(":8000", r))
}
我希望 getWords 函数输出 id 的值,例如: 如果 url 是 www.abc.com/cat,getWords 将输出 cat 如果 url 是 www.abc.com/3 getWords 将输出 3
我查遍了互联网,但没有找到解释
请使用
github.com/gorilla/mux
,并使用go get -u github.com/gorilla/mux
添加:
代码:
package main
import (
"fmt"
"log"
"net/http"
"github.com/gorilla/mux"
)
func getWords(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
id := vars["id"]
fmt.Println("ID:", id) // for stdout
w.Write([]byte("ID: " + id))
}
func InitRouter() {
r := mux.NewRouter() // gorilla mux new router
r.HandleFunc("/{id}", getWords)
log.Fatal(http.ListenAndServe(":8000", r))
}
func main() {
InitRouter()
}
输出(在终端和浏览器上):
ID: 3
ID: cat