gpt4 book ai didi

javascript - 使用动态 javascript 变量名访问 "variable"环境变量

转载 作者:行者123 更新时间:2023-11-30 08:20:37 25 4
gpt4 key购买 nike

我有一个问题。在我的主机/云解决方案中,我必须以这种方式使用每个国家/地区的定价环境变量“在他们的“环境变量”中定义)。

BASIC_PRICE_FR_PRODUCT = "50";
COMPLEX_PRICE_FR_PRODUCT = 100;

BASIC_PRICE_UK_PRODUCT = "37";
COMPLEX_PRICE_UK_PRODUCT = "200";

BASIC_PRICE_ES_PRODUCT = "75";
COMPLEX_PRICE_ES_PRODUCT = "300";

我可以访问那些使用 process.env.XXX 的,例如 process.env.BASIC_PRICE_FR

如您所见,这些环境变量取决于国家/地区,因为价格因国家/地区而异。

在我们的 node.js 应用程序中,挑战在于当一个函数被执行时,它是 self 意识的国家,所以我们可以(并且必须)使用“当前”国家和当前 country_iso_code(“fr”代表示例),因此我们必须使用与该国家/地区相匹配的定价。

在阅读了一些关于“动态变量名称”的帖子后,我尝试了如下所示的 eval、global[] 和 window[],但都没有用,所有输出都为“未定义”值

//note: iso_code_3166_we_can_use is something passed to the function by the final user or by some other lambda in the function context.
const current_country_iso_code_uppercase = iso_code_3166_we_can_use;
const basicPrice = parseInt( "process.env.BASIC_PRICE_" + current_country_iso_code_uppercase + "_PRODUCT")
console.log(basicPrice)//bug here as outputs "undefined"

编辑

使用 process.env['xxx'] 的建议没有用所以我在这里添加结果

console.log(process.env.BASIC_PRICE_FR_PRODUCT);//outputs 50
console.log('BASIC_PRICE_' + iso_code_uppercase + '_PRODUCT' );//just to be sure :): outputs BASIC_PRICE_FR_PRODUCT
console.log( process.env['BASIC_PRICE_' + iso_code_uppercase + '_PRODUCT'] );// DOES NOT WORK, outputs undefined

最佳答案

使用[] 动态访问对象的属性:

var country = 'FR'
var price = process.env['BASIC_PRICE_' + country + '_PRODUCT']

关于javascript - 使用动态 javascript 变量名访问 "variable"环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54190131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com