我有 2 个中间件和最终的 HandleFunc。
但 Request.Body 仅适用于第一个中间件。当第二个开始时,身体是空的。
会发生什么?
这是我对路线的呼吁。
router.HandleFunc("/registro", middleW.Validaciones(middleW.UsuarioYaExiste(routes.Registro))).Methods("POST")
第一个中间件是
func Validaciones (next http.HandlerFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
if bd.ChequeoConnection()==0 {
http.Error(w,"Conexión Perdida con la Base de Datos",500)
return
}
var t models.Usuario
err := json.NewDecoder(r.Body).Decode(&t)
http.Error(w,"Nombre "+t.Nombre+" - Email "+t.Email+" - Password "+t.Password, 400)
if err != nil {
mensaje:="Validaciones : Usuario y/o Contraseña inválidos <br> Password ="+t.Password+"<br>Email = "+t.Email+"<br>Nombre = "+t.Nombre
http.Error(w, mensaje, 400)
return
}
if len(t.Email)==0 {
http.Error(w, "El email de usuario es requerido", 400)
return
}
if len(t.Password)<6 {
http.Error(w, "Debe especificar una contraseña de al menos 6 caracteres", 400)
return
}
/* si todo estuvo OK devuelve la función de la Ruta */
next.ServeHTTP(w, r)
}
}
这是第二个中间件
func UsuarioYaExiste (next http.HandlerFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var t models.Usuario
err := json.NewDecoder(r.Body).Decode(&t)
http.Error(w,"Nombre 1ro. "+t.Nombre+" - Email "+t.Email+" - Password "+t.Password, 400)
if err != nil {
mensaje:="UsuarioYaExiste : Usuario y/o Contraseña inválidos <br> Password ="+t.Password+"<br>Email = "+t.Email+"<br>Nombre = "+t.Nombre
http.Error(w, mensaje, 400)
return
}
}
}
在这第二个中间件中,这一行
http.Error(w,"Nombre 1ro. "+t.Nombre+" - Email "+t.Email+" - Password "+t.Password, 400)
显示空值,但不在第一个中间件中。
浮云间
相关分类