Mat*_*ieu 1 javascript node.js webpack
我有一个问题。在我的主机/云解决方案中,我必须使用“在其“环境变量”中定义的”方式为每个国家/地区使用定价环境变量。
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";
Run Code Online (Sandbox Code Playgroud)
我可以使用process.env.XXX访问这些文件,例如 process.env.BASIC_PRICE_FR
如您所见,这些环境变量取决于国家/地区,因为一个国家/地区与另一个国家/地区的价格不同。
在我们的node.js应用程序中,挑战在于,执行一个函数时,它会自动了解所在国家/地区,因此,我们可以(并且必须)使用“当前”国家/地区和当前country_iso_code(例如“ fr”),为此,我们必须使用与该国家/地区匹配的定价。
在阅读了关于“动态变量名称”的一些文章之后,我尝试了eval,global []和window [],如下所示,但是没有任何作用,并且所有输出都为“ undefined”值
//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"
Run Code Online (Sandbox Code Playgroud)
编辑
使用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
Run Code Online (Sandbox Code Playgroud)
使用[]
动态访问一个对象的属性:
var country = 'FR'
var price = process.env['BASIC_PRICE_' + country + '_PRODUCT']
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
674 次 |
最近记录: |