Javascript JSON值使用process.env[node.js]动态更新
process.env.ENVIRONMENT=dev2 输入JSON: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
{
"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字符串函数和正则表达式(参见上面的链接)。