Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON值使用process.env[node.js]动态更新_Javascript_Json_Node.js - Fatal编程技术网

Javascript JSON值使用process.env[node.js]动态更新

Javascript JSON值使用process.env[node.js]动态更新,javascript,json,node.js,Javascript,Json,Node.js,process.env.ENVIRONMENT=dev2 输入JSON: { "base": { "product1" : "dev1.awesomeproduct1.com", "product2" : "dev1.awesomeproduct2.com" } } 输出JSON: 应根据process.env.ENVIRONMENT动态更新产品URL { "base": { "product1" : "dev2.awesome

process.env.ENVIRONMENT=dev2

输入JSON:

{
   "base": {
       "product1" : "dev1.awesomeproduct1.com",
       "product2" : "dev1.awesomeproduct2.com"
   }
}
输出JSON:

应根据process.env.ENVIRONMENT动态更新产品URL

{
    "base": {
         "product1" : "dev2.awesomeproduct1.com",
         "product2" : "dev2.awesomeproduct2.com"
     }
}

我是否正确理解您想用
process.env.env.ENVIRONMENT
变量替换部分域名

那么下面的代码应该可以工作了:

for (key in myJSON.base) {
  myJSON.base[key] = myJSON.base[key].replace(/^[^.]+/, process.env.ENVIRONMENT);
}

显然,如果在
基本
对象中存在
产品
以外的其他字段,或者如果需要进行更复杂的替换,则需要对其进行修改。

那么,是否要基于
进程.env.ENVIRONMENT
获取特定产品?否@mukeshharma,基于process.env.ENVIRONMENT参数,我需要为该产品启动正确的环境url。是的,process.env.environment是一个变量,是的,答案中将有除“product”之外的其他字段,我们正在迭代key和“/^[^.]+/,”替换值?我们正在迭代需要更改的对象的
base
字段的所有字段(我将其命名为
myJSON
)。
replace
是一个用另一个字符串替换一个字符串的函数,
/^[^.]+/
是一个正则表达式,它捕捉到一个点以内的所有字符(因此
dev1
dev1.awesomeproduct1.com
中删除)。您可以在此处查看有关正则表达式的详细信息:。如果您确实需要更改
product
以外的字段,则可以对正则表达式使用字符串
match
函数:
If(key.match(/product\d+$/){…进行替换…}
。您可以在JS文档中了解JavaScript字符串函数和正则表达式(参见上面的链接)。