如何在 .env 文件中定义 array/object?
How to define array/object in .env file?
以下是我的Javascript对象:
window.options = {
VAR1: VAL1,
VAR2: VAL2,
VA31: VAL3,
};
我希望在 .env
文件中定义它(对象或数组)。我该怎么做?
value in .env
value 只能是字符串。
简单的解决方法是将 env 值存储为逗号分隔值,例如:
SOME_VAR=VAL1,VAL2,VAL3
并将其拆分到您的 js 文件中:
const someVar = process.env.SOME_VAR.split(",");
console.log(someVar); // [ 'VAL1', 'VAL2', 'VAL3' ]
或者使用任何你想要的分隔符。
如果要存储对象,(不干净)解决方法是将 JSON 字符串存储为环境值,例如
OBJECT_VAL={ "VAR1": "VAL1", "VAR2": "VAL2", "VA31": "VAL3" }
在你的js代码中,你可以解析JSON:
const objectVal= JSON.parse(process.env.OBJECT_VAL);
console.log(objectVal); // { VAR1: 'VAL1', VAR2: 'VAL2', VA31: 'VAL3' }
我个人不认为在 .env 中存储 JSON 字符串是个好主意,所以我想就存储 .env
值并在您的应用程序中使用它的更好方法提出我的建议js代码。
1。用普通字符串值或定界符分隔值存储 env
例如:
ARRAY=VAL1,VAL2,VAL3
VAR1=VALl1
VAR2=VALl2
VAR3=VALl3
2。制作一个js文件来处理环境变量
我将其命名为 env.js
,在此文件中我将导出包含所有环境变量的对象
module.exports = {
array: process.env.ARRAY.split(","),
object: {
var1: process.env.VAR1,
var2: process.env.VAR2,
var3: process.env.VAR3,
}
}
而在其他文件上,您只需导入 env.js
并调用环境值
const env = require("path/to/env.js");
console.log(env.array); // [ 'VAL1', 'VAL2', 'VAL3' ]
console.log(env.object.var1); // "VAL1"
如果您的项目经常调用 process.env
,此解决方案可能会使您的代码更简洁一些,因为您不需要在每次要访问环境变量时都调用 process.
。
在 .env 文件中定义数组的两种方法是
//In the .env file SOME_ARRAY = A , B ,C
/In the .env file SOME_ARRAY = '["A","B","C"]' //In the code const convertedArray = JSON.parse(process.env.SOME_ARRAY)
为了隐藏对象,不幸的是 .env 文件不支持对象,因为它们除了字符串之外不理解任何东西,但我们可以将对象保留为 json 格式,我们可以将其解析为我们想要的文件夹
MY_OBJECT = { "A":"One","B":"two","C":"three" }
//we can access it in our code by follows
const myObject = JSON.parse(process.env.MY_OBJECT)
//we can also access a certain property of that object like follows
const myObject = (JSON.parse(process.env.MY_OBJECT)).A
以下是我的Javascript对象:
window.options = {
VAR1: VAL1,
VAR2: VAL2,
VA31: VAL3,
};
我希望在 .env
文件中定义它(对象或数组)。我该怎么做?
value in .env
value 只能是字符串。
简单的解决方法是将 env 值存储为逗号分隔值,例如:
SOME_VAR=VAL1,VAL2,VAL3
并将其拆分到您的 js 文件中:
const someVar = process.env.SOME_VAR.split(",");
console.log(someVar); // [ 'VAL1', 'VAL2', 'VAL3' ]
或者使用任何你想要的分隔符。
如果要存储对象,(不干净)解决方法是将 JSON 字符串存储为环境值,例如
OBJECT_VAL={ "VAR1": "VAL1", "VAR2": "VAL2", "VA31": "VAL3" }
在你的js代码中,你可以解析JSON:
const objectVal= JSON.parse(process.env.OBJECT_VAL);
console.log(objectVal); // { VAR1: 'VAL1', VAR2: 'VAL2', VA31: 'VAL3' }
我个人不认为在 .env 中存储 JSON 字符串是个好主意,所以我想就存储 .env
值并在您的应用程序中使用它的更好方法提出我的建议js代码。
1。用普通字符串值或定界符分隔值存储 env
例如:
ARRAY=VAL1,VAL2,VAL3
VAR1=VALl1
VAR2=VALl2
VAR3=VALl3
2。制作一个js文件来处理环境变量
我将其命名为 env.js
,在此文件中我将导出包含所有环境变量的对象
module.exports = {
array: process.env.ARRAY.split(","),
object: {
var1: process.env.VAR1,
var2: process.env.VAR2,
var3: process.env.VAR3,
}
}
而在其他文件上,您只需导入 env.js
并调用环境值
const env = require("path/to/env.js");
console.log(env.array); // [ 'VAL1', 'VAL2', 'VAL3' ]
console.log(env.object.var1); // "VAL1"
如果您的项目经常调用 process.env
,此解决方案可能会使您的代码更简洁一些,因为您不需要在每次要访问环境变量时都调用 process.
。
在 .env 文件中定义数组的两种方法是
//In the .env file SOME_ARRAY = A , B ,C
/In the .env file SOME_ARRAY = '["A","B","C"]' //In the code const convertedArray = JSON.parse(process.env.SOME_ARRAY)
为了隐藏对象,不幸的是 .env 文件不支持对象,因为它们除了字符串之外不理解任何东西,但我们可以将对象保留为 json 格式,我们可以将其解析为我们想要的文件夹
MY_OBJECT = { "A":"One","B":"two","C":"three" }
//we can access it in our code by follows
const myObject = JSON.parse(process.env.MY_OBJECT)
//we can also access a certain property of that object like follows
const myObject = (JSON.parse(process.env.MY_OBJECT)).A