我继承了react / javascript应用程序,我想做一个小小的改动,以便在mailchimp-configuration.js中为产品和测试环境导出不同的mailchimp帐户变量。 (这些值是从src / server / index.js导入的)
我更新了mailchimp-configuration.js,以检查process.env.NODE_ENV =='production'。这行得通,但是由于我可以将本地沙箱(或登台)服务器“作为生产”运行,因此并不完全正确,在这种情况下,将使用生产帐户而不是测试帐户。我需要使用更确定性的信息,知道我们是在生产环境中运行还是在暂存或本地运行。
浏览器页面上的一个简单解决方案是通过window.location.href检查url,但是不幸的是,从mailchimp-configuration.js中,未定义window。
我想我可以在某个地方设置一个全局变量,但这是最后的手段。从服务器端检查环境的好方法是什么?
谢谢!
答案 0 :(得分:0)
我需要使用更确定性的信息,以了解我们是在生产环境中运行还是与暂存或本地主机运行。
“在计算机上运行的nodejs实例”和“在计算机上运行的nodejs实例”在技术上没有区别。区分“您的本地主机”和“生产服务器”的唯一方法是告诉nodejs实例运行在何处,并由process.ENV
完成。
我更新了mailchimp-configuration.js,以检查process.env.NODE_ENV =='production'。这行得通,但是由于我可以将本地沙箱(或登台)服务器“作为生产”运行,因此并不完全正确,在这种情况下,将使用生产帐户而不是测试帐户。
实际上,这是一种解决方法,如果您担心自己的秘密电子邮件帐户被测试服务器使用,则该秘密实际上应该进入秘密管理器中,例如Vault
答案 1 :(得分:0)
您可以使用节点的本机os函数之一,并根据某个值确定是否在dev-> Link
中本地运行节点标准做法是根据您所处的环境(生产或开发)设置环境变量。
Collection<MyClass> findByDateBeginBetweenOrStartedWorkBetween(Instant firstDate, Instant lastDate, Instant firstDateAgain, Instant lastDateAgain);
default Collection<MyClass> findByDateBeginOrStartedWorkBetween(Instant firstDate, Instant lastDate) {
return findByDateBeginBetweenOrStartedWorkBetween(firstDate, lastDate, firstDate, lastDate);
}
执行检查:
process.env.NODE_ENV