在 Clojure 中使用 environ 时如何获取环境名称?
How do I get the environment name when using environ in Clojure?
在 Clojure 中使用 environ 时如何获取环境名称?我的意思是,:dev、:test 等。想要这个的原因是将它传递给 Yeller,这样当它显示错误时,它可以告诉我它们发生在哪个环境中。暂存错误的处理方式与生产错误的处理方式不同。
Environ只提供环境变量的访问,需要自己设置。您可以使用 lein-environ
在不同配置文件的 project.clj
中设置环境变量。这些配置文件将由 leiningen 挑选并合并在一起,然后您可以从您的代码中访问它们。例如,我们有:
:profiles {:dev {:resource-paths ["test-resources"]
:env {:environment "development"
:db-host "localhost"
:port 5000}}}
在生产中,我们提供实际的环境变量。
就像您想在代码中 "Tell, don't ask" 一样,您只需要使用配置选项,让 environ 根据环境确定正确的选项。在极少数情况下,您实际上需要环境名称本身,只需将其放在每个环境的 :env 映射中即可。
在 Clojure 中使用 environ 时如何获取环境名称?我的意思是,:dev、:test 等。想要这个的原因是将它传递给 Yeller,这样当它显示错误时,它可以告诉我它们发生在哪个环境中。暂存错误的处理方式与生产错误的处理方式不同。
Environ只提供环境变量的访问,需要自己设置。您可以使用 lein-environ
在不同配置文件的 project.clj
中设置环境变量。这些配置文件将由 leiningen 挑选并合并在一起,然后您可以从您的代码中访问它们。例如,我们有:
:profiles {:dev {:resource-paths ["test-resources"]
:env {:environment "development"
:db-host "localhost"
:port 5000}}}
在生产中,我们提供实际的环境变量。
就像您想在代码中 "Tell, don't ask" 一样,您只需要使用配置选项,让 environ 根据环境确定正确的选项。在极少数情况下,您实际上需要环境名称本身,只需将其放在每个环境的 :env 映射中即可。