【问题标题】:Profile based configuration for js/Nodejs/ES6js/Nodejs/ES6 的基于配置文件的配置
【发布时间】:2017-02-10 08:56:51
【问题描述】:

我有一个带有 ES6/js/react UI 和 Spring boot 服务器端的应用程序。在我的 config.js 中,我有主机服务器 URL 和其他基于 Env 更改的属性。我可以使用 spring active profile 来获取不同的属性集。我如何在 js 部分做类似的事情? 该应用程序被部署为带有嵌入式 Tomcat 的 Spring Boot 应用程序。

提出问题的另一种方式是如何在 NodeJs/JavaScript 世界中等效于 Spring 配置文件?

【问题讨论】:

  • 你的 JS 有构建步骤吗?通天塔?网页包?
  • @ivarni 我们使用 Babel 和 Gulp
  • This may 是一个解决方案,但我需要一种方法来根据 env Dev/Test/Prod 找到要读取的配置文件/属性文件
  • @Sïd 不幸的是,没有显示您尝试过的代码的问题不适合 SO。有太多不同的有效方法可以做到这一点。如果您尝试了一种方法,但没有成功,那么对于本论坛来说,这将是一个更好的问题。

标签: javascript node.js reactjs spring-boot ecmascript-6


【解决方案1】:

我已经实现了以下,它似乎工作。

设置 config-dev.js、config-QA.js、config-prod.js 等文件。这些包含特定于每个环境的配置

前 config-dev.js

const config_params = {dburl:"mongodb://localhost/mydb", port:5000};
module.exports = config_params

设置文件 - config.js 具有以下逻辑

let loadmodule = "./config-" + process.env.profile + ".js";
const setting = require(loadmodule);
module.exports = setting;

在索引文件或server.js中,导入config.js

const config = require('./config.js');

'profile=dev node server.js' 启动应用程序

【讨论】:

    【解决方案2】:

    我和你一样有需要:如何在 spring profile 活动环境变量后面使用相同的想法。我使用了 process.env:

    const profile = process.env.NODEJS_PROFILES_ACTIVE;
    

    我使用 Windows 和 Docker 作为环境变量进行了测试。

    【讨论】:

    • 在 Windows 中,您应该使用“编辑系统环境变量”创建一个带有 NODEJS_PROFILES_ACTIVE 的环境变量。对于 Linux,命令:导出 NODEJS_PROFILES_ACTIVE=dev。对于 Docker: docker run -e NODEJS_PROFILES_ACTIVE='dev' --name 'your_container' ...
    【解决方案3】:

    我的建议是使用 nodejs 创建一个服务器来托管您的静态文件并充当后端的代理服务器。

    最近我在我的反应项目中使用了这个 this 种子。我非常喜欢它,它使用 webpack 构建前端,还为您提供了一个方便的代理服务器,您可以在开发过程中使用它(这也消除了任何 CORS 问题)。

    代理服务器设置:environments.js

    【讨论】:

    • 这是边界线link-only answer。您应该在此处扩展您的答案以包含尽可能多的信息,并使用该链接仅供参考。
    • @FrankerZ 为什么?我建议在开发过程中使用 nodejs 创建代理服务器,并带有指向 github 上的示例设置的链接。
    • 一问一答都很模糊
    • @Juan Mendes,问题是如何在运行时基于 Env 获取配置参数,例如 URLs Db 属性等。一旦我制作了 Spring boot jar 文件,我应该能够将它部署在任何环境中,并且程序应该选择正确的配置。我使用 Spring 配置文件在 Spring-boot 部分执行此操作。不知道js UI部分怎么做。
    猜你喜欢
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 2019-10-08
    • 1970-01-01
    • 2019-05-22
    • 1970-01-01
    相关资源
    最近更新 更多