【问题标题】:How to fetch Object type environment variable?如何获取对象类型的环境变量?
【发布时间】:2017-08-14 12:56:43
【问题描述】:

目前我在我的 nodejs 应用程序中以这种方式设置了环境变量:

`

if (process.env.NODE_ENV === 'development') {
  process.env.LOGGER_LEVEL = 'silly';
  process.env.DB = 'db-v2-staging';
  process.env.DB_URI = 'localhost';
  process.env.SOME_FLAG = true;
  process.env.SOME_API_KEY = 'y43e6fgccdxfgvH4JR-KiUWkIvJeWiw';
  process.env.SftpServer = {
    host: '111.11.11.11',
    port: 22,
    username: 'johndoe',
    password: 'johndoe',
    input: './input_clone_test',
    output: './output_clone_test',
  };
} else if (process.env.NODE_ENV === 'production') {
  process.env.LOGGER_LEVEL = 'silly';
  process.env.DB = 'db-v2-staging';
  process.env.DB_URI = 'localhost';
  process.env.SOME_FLAG = true;
  process.env.SOME_API_KEY = 'y43e6fgccdxfgvH4JR-KiUWkIvJeWiw';
  process.env.SftpServer = {
    host: '111.11.11.11',
    port: 22,
    username: 'johndoe',
    password: 'johndoe',
    input: './input_test',
    output: './output_test',
  };
}

Problem i face is when i try to accessprocess.env.SftpServerit gives me **"[object Object]"** as output, even if i go withJSON.stringify(process.env.SftpServer)` 它给了我 ""[object Object]"" 。需要弄清楚解决方案,如果可能,请提出解决方案,不要使用第三方模块进行环境变量管理。

【问题讨论】:

    标签: node.js express configuration environment-variables


    【解决方案1】:

    ENV 变量是依赖于操作系统的东西。他们不支持 JS 对象表示法。 解决方法是将其设置为字符串,然后在获取时进行 JSON 解析。

    process.env.SftpServer  = `{
      "host": "111.11.11.11",
      "port": 22, "username": "johndoe", 
      "password": "johndoe", 
      "input": "./input_clone_test", 
      "output": "./output_clone_test"
    }`;
    
    
    console.log(JSON.parse(process.env.SftpServer ))
    

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 2012-08-30
      • 1970-01-01
      • 2022-01-18
      • 2017-06-23
      • 1970-01-01
      • 2017-01-30
      • 2020-03-28
      • 2017-09-24
      相关资源
      最近更新 更多