Как получить имя среды при использовании Environment в Clojure?
Как получить имя среды при использовании Environment в Clojure? Я имею в виду: dev,: test и т. Д. Причина, по которой вы хотите это сделать, заключается в том, чтобы передать его Йеллеру, чтобы при появлении ошибок он мог сообщить мне, в какой среде они произошли. Ошибки в постановке обрабатываются иначе, чем ошибки в производстве.
2 ответа
Environ предоставляет только доступ к переменным окружения, вам нужно установить их самостоятельно. Ты можешь использовать lein-environ
установить переменные среды в вашем project.clj
в разных профилях. Эти профили будут выбраны leiningen и объединены вместе, к которым вы можете получить доступ из своего кода. Например, у нас есть:
:profiles {:dev {:resource-paths ["test-resources"]
:env {:environment "development"
:db-host "localhost"
:port 5000}}}
Вместо этого мы предоставляем фактические переменные среды.
Точно так же, как вы хотите "сказать, не спрашивать" в своем коде, вам нужно просто использовать параметры конфигурации и позволить окружающей среде выяснить, какая из них основана на правильной. В редких случаях, когда вам действительно нужно имя среды, просто поместите его в карту:env для каждой среды.