Bestimmen der Wiederverwendbarkeit von Anforderungstexten in HTTP-Middleware-Handlern
In diesem Szenario tritt das Problem auf, wenn versucht wird, eine Methode innerhalb einer anderen in einem Go wiederzuverwenden -chi HTTP-Router. Der äußere Handler, Registration(), liest den Anforderungstext mit ioutil.ReadAll(r.Body), sodass dem inneren Handler, Create(), keine Daten zum Parsen von JSON zur Verfügung stehen.
Lösung : Wiederherstellen des Anforderungstexts
Um dieses Problem zu beheben, führen Sie Folgendes aus Fix:
func Registration(w http.ResponseWriter, r *http.Request) { b, err := io.ReadAll(r.Body) // ...other code r.Body = io.NopCloser(bytes.NewReader(b)) user.Create(w, r) }
So behebt dieser Code das Problem:
Auf diese Weise kann der innere Handler auf die JSON-Daten aus dem Anforderungshauptteil zugreifen, ohne auf das „unerwartete Ende der JSON-Eingabe“ zu stoßen. Fehler.
Das obige ist der detaillierte Inhalt vonWie kann ich Anforderungskörper in Go-chi-HTTP-Middleware-Handlern wiederverwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!