代码之家  ›  专栏  ›  技术社区  ›  PatrykB

.env与config.json

  •  9
  • PatrykB  · 技术社区  · 8 年前

    JavaScript / node.js (对后端webdev的一个温和的介绍),因此我在这个主题上完全是新手。

    几天前,我读了一个教程,从中我学会了在 config.json 文件。

    .env 文件,而且我对它了解得越多,似乎就有越多的人使用它来实际存储密码。

    所以我什么时候用 .env环境 我应该什么时候用 配置.json

    4 回复  |  直到 8 年前
        1
  •  13
  •   Derek Pollard    8 年前

    问题

    什么时候应该 .env config.json 为了什么?

    答案

    这是一个相当困难的答案。一方面,在开发过程中,您只应该真正地使用这两种工具中的任何一种。这意味着,在生产或类似产品的环境中,您可以将这些变量直接添加到环境中:

    NODE_ENV=development node ./sample.js --mongodb:host "dharma.mongohq.com" --mongodb:port 10065
    

    没有真正的胜利者,因为他们都有不同的帮助方式。您可以使用 配置.json ,但另一方面,您还可以使用

    还需要注意的是,您永远不想将这些文件提交给源代码管理(git、svc等)。

    另一方面,这些工具使初学者很容易快速入门,而不必担心如何设置环境变量以及windows环境和linux环境之间的差异。

    总而言之,我认为这完全取决于开发人员。

        2
  •  4
  •   John Ellmore    8 年前

    这在很大程度上取决于个人偏好和所使用框架的约定。它们只是存储同一类信息的不同格式。

    一些配置文件格式示例:

    • .env
    • *.yml
    • *.ini (通常仅限Windows)
    • *.json

        3
  •  4
  •   derelict    8 年前

    .env 文件通常用于存储与特定部署环境相关的信息,而 config.json 文件可用于存储特定于整个应用程序的数据。

    无论哪种方法都有效,配置文件是否存储在存储库中,更多的是取决于数据是否需要保密。

        4
  •  3
  •   Abdul Ahmad    8 年前

    我认为这真的取决于你,重要的是要记住为什么你要使用这种方法。这样做的目的是将敏感数据保存在一个文件中,该文件不会被推送到源代码管理或本地环境以外的任何其他地方,这样可以保证数据的安全性。然后,当您准备部署到某个远程服务器时,需要手动将这些值插入到该环境中。

    我通常使用 .env 因为从 许多远程环境(如heroku)支持文件。当我将应用程序部署到heroku时,我可以进入应用程序的设置,并使用heroku仪表板用户界面输入环境变量-我不需要知道如何手动创建json文件,等等。。。(也许还有其他的解决办法)。变量就位后,我只使用 process.env.variableName

        5
  •  3
  •   Chunky Chunk    7 年前

    Statistically comparing the two NPM packages (以及其他类似的解决方案)可能是你自己做出决定的最佳方式。

    在撰写本文时, dotenv 是一个支持度更高的小得多的包(除了实际的贡献者之外,仅根据剩余问题的数量和巨大的人气推断)。它也更新了2.5年,如果大张旗鼓对你很重要的话,它拥有两倍的明星。

    enter image description here

    推荐文章