Каждый запрос к моему приложению должен использовать некоторое промежуточное программное обеспечение. Используя документы NEGRONI я реализовал это так:Передача аргументов промежуточному программному обеспечению Negroni
func MyMiddleware(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
// do some stuff before
next(rw, r)
}
и в других местах я использую:
n.Use(negroni.HandlerFunc(MyMiddleware))
Однако, промежуточное необходимо получить дополнительный аргумент, и я не знаю, как построить этот В настоящее время я просто устанавливаю значение как глобальную переменную, чтобы сделать его доступным, но я уверен, что есть более элегантный способ?
Я хотел бы быть в состоянии сделать что-то вроде этого:
n.Use(negroni.HandlerFunc(MyMiddleware(val)))
Хммм - кажется, излишним для меня - может прилипнуть с глобальной переменной, чтобы быть честным. – tommyd456
@ tommyd456, пока вам не понадобится более одной переменной состояния, или вам потребуется более одного экземпляра вашего промежуточного программного обеспечения. Если это не так, то закрытия будет достаточно. Я добавлю это к своему ответу. –
Мне нравится подход к закрытию - я дал это самому себе и был почти там. Приветствия за это. Собираюсь уходить утром! – tommyd456