mux миддлвер на логгирование запросов, чтоб не пришлось прописывать на каждый хэндлер. Нашел примеры, когда в http.ListenAndServe вставляют порт, но тут у меня ListenAndServe метод http.Server. Какие условия должны быть соблюдены при создания мидддлвера на мультиплексор? спасибо!
mux := http.NewServeMux()
s := &http.Server{
Addr: PORT,
Handler: mux,
IdleTimeout: 10 * time.Second,
ReadTimeout: time.Second,
WriteTimeout: time.Second,
}
defer s.Close()
mux.Handle("/login", login)
if err := s.ListenAndServe(); err != nil && err != http.ErrServerClosed {
fmt.Println(err)
return
}
Middleware никак не связаны с ListenAndServe
Бросается в глаза, что defer s.Close() вызывается раньше, чем сервер стартует. Так делать нехорошо
так с дефером же
Если бы без defer, то это сразу бы не работало. А с ним - будет ошибка, если добавить какой-нибудь return между ними. defer сlose нужно делать сразу после старта, если он прошел без ошибок
гляну, спасибо!)
Обсуждают сегодня