Mux return 如果未定义变量?
Mux return if variable not defined?
我想处理未定义参数的情况。
import (
// ...
"github.com/gorilla/mux"
)
func main() {
router := mux.NewRouter()
router.HandleFunc("/connect", Connect).Methods("POST")
log.Fatal(http.ListenAndServe(":7777", router))
}
// ...
func Connect(w http.ResponseWriter, r *http.Request) {
params := mux.Vars(r)
if params["password"] == nil {
fmt.Println("login without password")
} else {
fmt.Println("login with password")
}
}
我也试过了if !params["ssid"] {
正确的语法是什么?
使用 mux.Vars(r)
我试图从以下位置捕获 post 参数:
curl -H 'Content-Type: application/json' -d '{"ssid":"wifi"}' -X POST http://localhost:7777/connect
ssid
是必需的,但 password
是可选的。
使用以下命令检查是否存在 mux 请求变量:
params := mux.Vars(r)
password, ok := params["password"]
if ok {
// password is set
} else {
// password is not set
}
此代码使用 the two value index expression 检查映射中是否存在密钥。
您的意图似乎是解析 JSON 请求正文而不是访问 mux 变量。在您的处理程序中执行此操作:
var m map[string]string
err := json.NewDecoder(r.Body).Decode(&m)
if err != nil {
// handle error
}
password, ok := m["password"]
if ok {
// password is set
} else {
// password is not set
}
我想处理未定义参数的情况。
import (
// ...
"github.com/gorilla/mux"
)
func main() {
router := mux.NewRouter()
router.HandleFunc("/connect", Connect).Methods("POST")
log.Fatal(http.ListenAndServe(":7777", router))
}
// ...
func Connect(w http.ResponseWriter, r *http.Request) {
params := mux.Vars(r)
if params["password"] == nil {
fmt.Println("login without password")
} else {
fmt.Println("login with password")
}
}
我也试过了if !params["ssid"] {
正确的语法是什么?
使用 mux.Vars(r)
我试图从以下位置捕获 post 参数:
curl -H 'Content-Type: application/json' -d '{"ssid":"wifi"}' -X POST http://localhost:7777/connect
ssid
是必需的,但 password
是可选的。
使用以下命令检查是否存在 mux 请求变量:
params := mux.Vars(r)
password, ok := params["password"]
if ok {
// password is set
} else {
// password is not set
}
此代码使用 the two value index expression 检查映射中是否存在密钥。
您的意图似乎是解析 JSON 请求正文而不是访问 mux 变量。在您的处理程序中执行此操作:
var m map[string]string
err := json.NewDecoder(r.Body).Decode(&m)
if err != nil {
// handle error
}
password, ok := m["password"]
if ok {
// password is set
} else {
// password is not set
}