【问题标题】:How to define array/object in .env file?如何在 .env 文件中定义数组/对象?
【发布时间】:2020-12-29 22:46:52
【问题描述】:

以下是我的 Javascript 对象:

window.options = {
    VAR1: VAL1,
    VAR2: VAL2,
    VA31: VAL3,
};

我希望在.env 文件中定义它(对象或数组)。我该怎么做?

【问题讨论】:

    标签: dotenv


    【解决方案1】:

    .env 中的值只能是字符串。

    简单的解决方法是将 env 值存储为逗号分隔值,例如:

    SOME_VAR=VAL1,VAL2,VAL3
    

    并将其拆分到您的 js 文件中:

    const someVar = process.env.SOME_VAR.split(",");
    
    console.log(someVar); // [ 'VAL1', 'VAL2', 'VAL3' ]
    

    或者使用任何你想要的分隔符。


    如果要存储对象,(不干净的)解决方法是将 JSON 字符串存储为 env 值,例如

    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' }
    

    我个人认为将 JSON 字符串存储在 .env 中并不是一个好主意,所以我想提出我的建议,以更好地存储 .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.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-27
      • 1970-01-01
      相关资源
      最近更新 更多