@vGrabko99
html, css, js, php, golang, mysql

Как обработать несколько параметров?

Привет. Использую роутер https://github.com/julienschmidt/httprouter

Пока передаю 1 параметр всё гуд. Но как попытался передать два вышло не то что хотелось
Вот код
package main

import (
    "fmt"
    "github.com/julienschmidt/httprouter"
    "net/http"
    "log"
)

func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
    fmt.Fprint(w, "Welcome!\n")
}

func Hello(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
    fmt.Fprintf(w, "hello, %s!\n", ps.ByName("name"),"Familu", ps.ByName("fam"))
}

func main() {
    router := httprouter.New()
    router.GET("/", Index)
    router.GET("/hello/:name/:fam", Hello)

    log.Fatal(http.ListenAndServe(":9001", router))
}


На экране получаю hello, rty546!
%!(EXTRA string=Familu !
, string=ty4567)

Стринг = передаваемый параметр. Всем спасибо
  • Вопрос задан
  • 199 просмотров
Решения вопроса 2
@vGrabko99 Автор вопроса
html, css, js, php, golang, mysql
Работает если вывод делать отдельно для каждого параметра
package main

import (
    "fmt"
    "github.com/julienschmidt/httprouter"
    "net/http"
    "log"
)

func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
    fmt.Fprint(w, "Welcome!\n")
}

func Hello(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
    fmt.Fprintf(w, "hello, %s!\n", ps.ByName("name"))
    fmt.Fprintf(w, "Fam, %s!\n", ps.ByName("fam"))
}

func main() {
    router := httprouter.New()
    router.GET("/", Index)
    router.GET("/hello/:name/:fam", Hello)

    log.Fatal(http.ListenAndServe(":9001", router))
}


но а как сделать в 1 строку?
Ответ написан
Комментировать
...
func Hello(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
    fmt.Fprintf(w, "hello, %s!\nFam, %s!\n", ps.ByName("name"),  ps.ByName("fam"))
}
...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы