Использование HandleFunc на http против mux - PullRequest
0 голосов
/ 13 февраля 2019

Я новичок и хочу настроить маршрутизацию, а также cors.Я видел два способа сделать это: один, который инициализирует мультиплексор с NewServeMux, а затем назначает обработчики с HandleFunc, и тот, который использует HandleFunc непосредственно на http.Вот что я имею в виду:

mux := http.NewServeMux()
mux.HandleFunc("/api", apiFunc)
mux.HandleFunc("/", indexFunc)

против

http.HandleFunc("/api", apiFunc)
http.HandleFunc("/", indexFunc)
http.ListenAndServe("127.0.0.1:3001", nil)

Есть ли различия в этих подходах?Если они выполняют похожие вещи, является ли еще один распространенным / прагматичным?

1 Ответ

0 голосов
/ 13 февраля 2019

http.HandleFunc и другие применяют ваши обработчики к глобальному экземпляру пакета ServeMux, содержащемуся в пакете http, который затем запускается http.ListenAndServe.Вы также можете создать свой собственный экземпляр, как вы это делали в первом примере, что дает вам больше контроля и облегчает юнит-тестирование.В конце концов, выбор за вами;удобные функции и глобальные пакеты, вероятно, хороши для небольших проектов с ограниченным периодом обслуживания, но для более крупных или более длительных проектов я обычно рекомендую управлять своими собственными экземплярами ServeMux и Server.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...