some changes
parent
24a36b22b3
commit
61341eaa03
6
main.go
6
main.go
|
@ -50,10 +50,8 @@ func setupRoutesAndRun(a *models.App) error {
|
||||||
func setupRoutes(a *models.App) *http.ServeMux {
|
func setupRoutes(a *models.App) *http.ServeMux {
|
||||||
router := http.NewServeMux()
|
router := http.NewServeMux()
|
||||||
|
|
||||||
// middlewares
|
// Цепочка обработчиков, которые сработают до отдачи страницы юзеру
|
||||||
m := controllers.MiddlewaresChain(
|
m := controllers.MiddlewaresChain
|
||||||
controllers.LoggingMiddleware,
|
|
||||||
)
|
|
||||||
|
|
||||||
// Обработка статических файлов с кэшированием
|
// Обработка статических файлов с кэшированием
|
||||||
router.Handle(a.Config.AssetsPath, m(controllers.StaticHandler()))
|
router.Handle(a.Config.AssetsPath, m(controllers.StaticHandler()))
|
||||||
|
|
|
@ -8,16 +8,22 @@ import (
|
||||||
|
|
||||||
type Middleware func(http.Handler) http.Handler
|
type Middleware func(http.Handler) http.Handler
|
||||||
|
|
||||||
|
var (
|
||||||
|
MiddlewaresChain = CreateMiddlewaresChain(
|
||||||
|
LoggingMiddleware,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Возвращает один middleware, который объединяет все переданные
|
Возвращает один middleware, который объединяет все переданные
|
||||||
|
|
||||||
MiddlewaresChain(m1, m2, m3)
|
CreateMiddlewaresChain(m1, m2, m3)
|
||||||
= func(next http.Handler) http.Handler { return m1(m2(m3(final))) }
|
= 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(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 {
|
return func(final http.Handler) http.Handler {
|
||||||
for i := len(middlewares) - 1; i >= 0; i-- {
|
for i := len(middlewares) - 1; i >= 0; i-- {
|
||||||
final = middlewares[i](final)
|
final = middlewares[i](final)
|
||||||
|
@ -29,10 +35,9 @@ func MiddlewaresChain(middlewares ...Middleware) Middleware {
|
||||||
func LoggingMiddleware(next http.Handler) http.Handler {
|
func LoggingMiddleware(next http.Handler) http.Handler {
|
||||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
log.Printf("Started %s %s", r.Method, r.URL.Path)
|
|
||||||
|
|
||||||
next.ServeHTTP(w, r)
|
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))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
what do i do?
|
what do i do?
|
||||||
</h1>
|
</h1>
|
||||||
<p>
|
<p>
|
||||||
programming is my everything - my job, my hobby, my lifelong obsession
|
programming is my everything - my job, my hobby, my lifestyle
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
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!
|
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!
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
чем я занимаюсь?
|
чем я занимаюсь?
|
||||||
</h1>
|
</h1>
|
||||||
<p>
|
<p>
|
||||||
программирование - это моё всё: работа, хобби, пожизненная одержимость
|
программирование - это моё всё: работа, хобби, стиль жизни
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
мне нравится развиваться во всех областях программирования - мне буквально интересно всё: кибербезопасность (хаотичный взлом вещей, анализ кода, написание автоматических анализаторов и перекладывание байтов туда-сюда), многопоточность, веб-разработка, низкоуровневое программирование, криптография и многое другое!
|
мне нравится развиваться во всех областях программирования - мне буквально интересно всё: кибербезопасность (хаотичный взлом вещей, анализ кода, написание автоматических анализаторов и перекладывание байтов туда-сюда), многопоточность, веб-разработка, низкоуровневое программирование, криптография и многое другое!
|
||||||
|
|
Loading…
Reference in New Issue