问题标签 [node-config]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node-config - 无法在 Window 中使用 node-config 获取环境变量(自我回答)
我无法使用node-config在 Windows 中获取环境变量。
我的 index.js 正在使用 nodemon 运行 CMD。
我打开了一个新的 CMD 并输入set myApp_jwtSecretKey=mySecretHere
这是为什么?
node.js - 无法为节点模块选择正确的配置设置
我正在使用 config npm 包来管理跨环境的不同环境设置。我开发了一个 node_module,它有自己的配置目录并包含一个dev.json
设置文件,并在config.get("dbName");
我在另一个也有自己的dev.json
设置文件的应用程序中使用这个 node_module 时读取它。当我像我开发的那样运行这个父应用程序set NODE_ENV=dev node app.js
时,node_modules
它会读取我的父应用程序配置的设置。我的应用程序崩溃了,因为它没有config.get("dbName");
我试过做var config = require("config").load();
node.js - 节点配置自定义环境变量在测试期间不覆盖 default.json
当 NODE_ENV 设置为“test”时,Node-config 的 custom-environment-variables.json 似乎不会覆盖 default.json 中的值。这是一个非常简单的配置:
配置/default.json:
配置/自定义环境变量.json:
配置/test.json:
应用程序.js:
这按预期工作:我得到 NODE_ENV=undefined (因此 node-config 将默认为“开发”),并且接下来的两行都打印了在环境变量中设置的正确值。但是,如果我尝试使用 Jest 运行一个简单的测试并打印相同的内容:
测试/some.test.js:
我得到 NODE_ENV=test,Env=在环境变量中设置的正确值...但是 Config=defaultKey。
换句话说:虽然它显示环境变量设置为正确的值,但 node-config 似乎并没有通过 custom-environment-variables.json 将其拉入。
这是一个错误吗?我已经搜索了文档,但找不到导致这种差异的任何原因。
node-config - 如何使用 node-config 从数组中获取项目属性
我无法从配置文件中的数组中获取项目。
我正在尝试获取SearchInitUrl
第一个搜索项目的道具,并且我正在使用
不工作
希望有人能帮忙,先谢谢了。
vue.js - 使用 Jest 测试时未定义全局节点配置变量
我正在从node-config docs实施选项 2 。
这运行良好,并且我的全局配置变量是在测试环境之外运行时定义的。
但是,当我使用vue-cli
Jest 单元测试(例如vue-cli-service test:unit
)运行此程序时,我收到此错误:
有什么好的方法可以解决这个问题?是因为 Jest 在node-config
完成所有全局变量及其值的切换之前就开始执行 JS 文件吗?
firebase - 如何在运行时或部署时设置 env var 以选择正确的配置
1. 总结问题
我们正在使用一个配置模块(节点),它允许我们设置各种配置选项,例如数据库设置或其他 api 端点设置与我们的 firebase 托管应用程序。
如果 APP_ENV 变量设置为“dev”,则它指向 dev api 的实例和数据库设置,与“test”和“prod”相同。
在容器中运行时,我们只需要一个设置 APP_ENV 的 shell 脚本,然后运行服务器,并选择正确的配置设置。
我们如何使用 Firebase 托管来做到这一点?
使用:https ://github.com/lorenwest/node-config
2. 提供背景,包括您已经尝试过的内容
翻阅文档,一无所获。
3.显示一些代码
https://github.com/lorenwest/node-config
4. 描述预期和实际结果,包括任何错误消息
预期:部署到 Firebase 并让 Web 应用根据环境(开发、测试、产品)访问正确的资源(api 端点、数据库设置)。
node.js - Node-config:如何从配置中获取未冻结的数据?
我在我的项目中使用了node-config模块,它非常有用。但是我遇到了我不知道如何处理的用例。这是一个示例:
我有一个包含很多嵌套对象的巨大配置,这是简化的一个:
当我第一次调用config.get()
配置对象时,配置对象的所有嵌套属性都是不可变的。哪个好。
但config.get()
也返回冻结对象。所以你不能这样做:
有没有办法获得解冻的嵌套对象表单配置?所以我可以改变它。
node.js - 在节点配置之前使用 dotenv 加载 ENV 变量
我想将环境变量加载到config
我的 Express 应用程序中。在本地我使用一个.env
文件,但是在部署时,我会将环境变量注入到 docker 容器中。
所以,我有default.json
一些硬编码的配置值。然后我得到了custom-environment-variables.json
这样的文件:
和.env
我项目的根目录中的一个文件。
在服务器启动文件中,我有:
我还尝试将它们按正常顺序放置:
我尝试的另一件事是将应用程序声明与服务初始化和应用程序启动分开。像这样app.ts
:
然后在index.ts
:
但无济于事。.env
文件已加载,我可以看到 in 的 vars ,process.env
但它们没有被config
in加载custom-environment-variables.json
。铁nodeEnv
和变量被加载port
。hostname
但是它们在应用程序启动之前被加载到容器中。
这让我想到,config
在dotenv
模块设法从.env
加载。从本质上讲,这个问题似乎只存在于 DEV 环境中,因为这是我从.env
文件中加载环境变量的唯一地方。对于任何其他环境,它们甚至会在应用程序启动之前出现在容器环境中。
我可以强制重新加载吗config
吗?
有什么建议可以实现吗?