在Clojure中使用environ时如何获取环境名称?我的意思是,:dev,:test等。想要这个的原因是将它传递给Yeller所以当它显示错误时它可以告诉我它们发生在哪个环境中。分段错误的处理方式与生产中的错误不同。
答案 0 :(得分:2)
Environ仅提供对环境变量的访问权限,您需要自己设置它们。您可以使用lein-environ
在project.clj
的不同配置文件中设置环境变量。这些配置文件将由leiningen选中并合并在一起,然后您可以从您的代码中访问这些配置文件。例如,我们有:
:profiles {:dev {:resource-paths ["test-resources"]
:env {:environment "development"
:db-host "localhost"
:port 5000}}}
在生产中,我们提供实际的环境变量。
答案 1 :(得分:1)
就像你想要的那样"告诉,不要问"在您的代码中,您只需使用配置选项,让环境根据环境找出正确的配置选项。在极少数情况下,您实际需要环境名称本身,只需将其放在每个环境的:env映射中。