【问题标题】:What does environment development mean?环境发展是什么意思?
【发布时间】:2016-08-04 14:32:24
【问题描述】:

我正在学习 nodejs,当我使用 expressjs 和 krakenjs 之类的教程时,我多次看到这些术语:

ProductionDevelopment Environment

我的理解是,这些是生产和开发时间的配置,但为什么它们在相同的代码中?如果应用/网站发布了,里面是否还有development 配置?

我还是不明白...

【问题讨论】:

  • 我不完全确定你在问什么。您包含的该图像基本上说“您可以在项目中包含两个配置文件,app.jsonapp-development.json。当您想从一个更改为另一个时,请使用不同的 NODE_ENV 环境值重新启动您的服务。 "另请参阅What is NODE_ENV in Express? 至于“里面是否还有development 配置?” -- 它可以,但如果您在生产中使用正确的 NODE_ENV 值,它显然不会做任何事情。
  • 例如,我在安装Ghost博客的时候,在config.js中又看到了github.com/TryGhost/Ghost/blob/master/config.example.jsconfig = { // ### Production production: { ... } // ### Development **(default)** development: { ... }

标签: node.js express


【解决方案1】:

您是正确的,它们是在您自己的机器上进行开发或代码在生产中运行时使用的配置文件。你的开发配置文件可能包含一个连接到在你的开发机器上运行的数据库的连接字符串,而生产连接字符串可能指向一个大型、快速的服务器,上面有生产数据。

是的,在您的代码中同时包含这两个文件是很好的,即使它在生产环境中运行,只要您确保系统使用的是正确的文件。您可以通过将 NODE_ENV 环境变量设置为devprod 来告诉系统使用哪一个。 Kraken 将查看 NODE_ENV 中的值并使用适当的配置文件。这在 node 中是很常见的事情。

【讨论】:

  • 谢谢,所以我理解正确。但是我在这里仍然有些困惑。由于我们只有1个源,所以如果我们在开发中工作,更改代码,生产站点会被破坏吗?
  • 好吧,如果你在做开发工作,它应该在与生产不同的盒子上。您永远不想直接在生产盒上工作。因此,您将获得要修改的代码的单独副本。这是在您的开发环境中完成的(NODE_ENV='dev')。进行更改并对其进行测试后,将这些更改部署到生产环境(NODE_ENV='prod')。
  • 可能。您可以使用 git 进行部署。 Heroku 就是这样工作的。关键是您有一台或多台计算机运行您的客户使用的代码。这是您的生产环境。然后,您拥有一台或多台计算机,其中包含用于进行开发的代码。这是您的开发环境。应保持完全分开,不应以任何方式相互干扰。您在问题中提到的配置文件是帮助代码了解其运行的计算机是开发计算机还是生产计算机的一种方法。
  • 我不知道该如何表达对你的感激之情。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2015-01-12
  • 2020-05-30
  • 2021-11-13
  • 1970-01-01
  • 2012-01-18
  • 1970-01-01
  • 1970-01-01
  • 2017-06-29
相关资源
最近更新 更多