diff --git a/main.go b/main.go index 656ab99..2afceb3 100644 --- a/main.go +++ b/main.go @@ -50,10 +50,8 @@ func setupRoutesAndRun(a *models.App) error { func setupRoutes(a *models.App) *http.ServeMux { router := http.NewServeMux() - // middlewares - m := controllers.MiddlewaresChain( - controllers.LoggingMiddleware, - ) + // Цепочка обработчиков, которые сработают до отдачи страницы юзеру + m := controllers.MiddlewaresChain // Обработка статических файлов с кэшированием router.Handle(a.Config.AssetsPath, m(controllers.StaticHandler())) diff --git a/mvc/controllers/middlewares.go b/mvc/controllers/middlewares.go index 760e276..436c173 100644 --- a/mvc/controllers/middlewares.go +++ b/mvc/controllers/middlewares.go @@ -8,16 +8,22 @@ import ( type Middleware func(http.Handler) http.Handler +var ( + MiddlewaresChain = CreateMiddlewaresChain( + LoggingMiddleware, + ) +) + /* Возвращает один middleware, который объединяет все переданные -MiddlewaresChain(m1, m2, m3) +CreateMiddlewaresChain(m1, m2, m3) = func(next http.Handler) http.Handler { return m1(m2(m3(final))) } -MiddlewaresChain(LoggingMiddleware) +CreateMiddlewaresChain(LoggingMiddleware) = func(next http.Handler) http.Handler { return LoggingMiddleware(final) } */ -func MiddlewaresChain(middlewares ...Middleware) Middleware { +func CreateMiddlewaresChain(middlewares ...Middleware) Middleware { return func(final http.Handler) http.Handler { for i := len(middlewares) - 1; i >= 0; i-- { final = middlewares[i](final) @@ -29,10 +35,9 @@ func MiddlewaresChain(middlewares ...Middleware) Middleware { func LoggingMiddleware(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { start := time.Now() - log.Printf("Started %s %s", r.Method, r.URL.Path) next.ServeHTTP(w, r) - log.Printf("Completed %s in %v", r.URL.Path, time.Since(start)) + log.Printf("%s %s in %v", r.Method, r.URL.Path, time.Since(start)) }) } diff --git a/mvc/views/pages/main.gohtml b/mvc/views/pages/main.gohtml index b6e2bff..a3ae1d8 100644 --- a/mvc/views/pages/main.gohtml +++ b/mvc/views/pages/main.gohtml @@ -46,7 +46,7 @@ what do i do?
- programming is my everything - my job, my hobby, my lifelong obsession + programming is my everything - my job, my hobby, my lifestyle
i love growing in all areas of programming - i am literally interested in everything: cybersecurity (chaotically breaking things, analyzing code, writing automated analyzers, and moving bytes back and forth), concurrency/multithreading, web development, low-level programming, cryptography and a lot more! diff --git a/mvc/views/pages/main_ru.gohtml b/mvc/views/pages/main_ru.gohtml index 594c9f6..1cdc627 100644 --- a/mvc/views/pages/main_ru.gohtml +++ b/mvc/views/pages/main_ru.gohtml @@ -53,7 +53,7 @@ чем я занимаюсь?
- программирование - это моё всё: работа, хобби, пожизненная одержимость + программирование - это моё всё: работа, хобби, стиль жизни
мне нравится развиваться во всех областях программирования - мне буквально интересно всё: кибербезопасность (хаотичный взлом вещей, анализ кода, написание автоматических анализаторов и перекладывание байтов туда-сюда), многопоточность, веб-разработка, низкоуровневое программирование, криптография и многое другое!