3

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

4

2 回答 2

2

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

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

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

于 2015-10-22T20:02:17.453 回答
1

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

于 2015-10-23T01:09:36.427 回答