0

我是围棋新手。因此,请提供一个示例和您的答案。我正在使用 julienschmidt/httprouter。我可以用这个解析一个参数,但是如何使用这个或任何其他库解析多个参数?我想要实现的输出是从这个 url获取dgff@vcv.com& :->dccccfhttp://localhost:8080/login?id=dgff@vcv.com&pwd=dccccf

我的代码在:- https://github.com/mohit810/prog-1

我尝试r.GET("/login",uc.LoginUser)在 main.go 和 controllers/user.go 中添加

func (uc UserController) LoginUser(w http.ResponseWriter, request *http.Request, params httprouter.Params) {
    emailId := params.ByName("id")
    pwd := params.ByName("pwd")

    u := models.User{}

    if err := uc.session.DB("go-web-dev-db").C("users").FindId(emailId + pwd).One(&u); err != nil {
        w.WriteHeader(404)
        return
    }

    uj, err := json.Marshal(u)
    if err != nil {
        fmt.Println(err)
    }

    w.Header().Set("Content-Type", "application/json")
    w.WriteHeader(http.StatusOK) // 200
    fmt.Fprintf(w, "%s\n", uj)
}
4

1 回答 1

2

在 main.go 中添加以下内容

r.GET("/login",uc.LoginUser)

并在 controllers/user.go 中添加以下内容

func (uc UserController) LoginUser(w http.ResponseWriter, request *http.Request, params httprouter.Params) {
    emailId := request.URL.Query().Get("id")
    pwd := request.URL.Query().Get("pwd")

    u := models.User{}

    if err := uc.session.DB("go-web-dev-db").C("users").FindId(emailId + pwd).One(&u); err != nil {
        w.WriteHeader(404)
        return
    }

    uj, err := json.Marshal(u)
    if err != nil {
        fmt.Println(err)
    }

    w.Header().Set("Content-Type", "application/json")
    w.WriteHeader(http.StatusOK) // 200
    fmt.Fprintf(w, "%s\n", uj)

}
于 2020-04-28T15:40:17.027 回答