在Clojure中使用environ时如何获取环境名称?

时间:2015-10-22 16:09:40

标签: clojure environ

在Clojure中使用environ时如何获取环境名称?我的意思是,:dev,:test等。想要这个的原因是将它传递给Yeller所以当它显示错误时它可以告诉我它们发生在哪个环境中。分段错误的处理方式与生产中的错误不同。

2 个答案:

答案 0 :(得分:2)

Environ仅提供对环境变量的访问权限,您需要自己设置它们。您可以使用lein-environproject.clj的不同配置文件中设置环境变量。这些配置文件将由leiningen选中并合并在一起,然后您可以从您的代码中访问这些配置文件。例如,我们有:

  :profiles {:dev {:resource-paths ["test-resources"]
                   :env            {:environment    "development"
                                    :db-host        "localhost"
                                    :port           5000}}}

在生产中,我们提供实际的环境变量。

答案 1 :(得分:1)

就像你想要的那样"告诉,不要问"在您的代码中,您只需使用配置选项,让环境根据环境找出正确的配置选项。在极少数情况下,您实际需要环境名称本身,只需将其放在每个环境的:env映射中。