首页 文章

在Node.js中读取环境变量

提问于
浏览
1093

有没有办法在Node.js代码中读取环境变量?

比如Python的 os.environ['HOME'] .

5 回答

  • 113

    要在Node.JS中检索环境变量,您可以使用 process.env.VARIABLE_NAME ,但不要忘记在process.env上分配属性会隐式地将值转换为字符串 .

    避免使用布尔逻辑

    即使您的.env文件定义了一个变量,如SHOULD_SEND = false或SHOULD_SEND = 0,这些值也会转换为字符串(分别为“false”和“0”),而不会被解释为布尔值 .

    if (process.env.SHOULD_SEND) {
     mailer.send();
    } else {
      console.log("this won't be reached with values like false and 0");
    }
    

    相反,你应该做出明确的检查 . 我发现取决于环境名称还有很长的路要走 .

    db.connect({
      debug: process.env.NODE_ENV === 'development'
     });
    
  • 5

    使用Node.js时,可以通过 process.env 对象中的键检索环境变量:

    例如

    var mode   = process.env.NODE_ENV;
    var apiKey = process.env.apiKey; // '42348901293989849243'
    

    以下是解释setting environment variables in node.js的答案

  • 1644

    您可以使用env包来管理每个项目的环境变量:

    • 在项目目录下创建一个 .env 文件,并将所有变量放在那里 .

    • 在应用程序条目文件的顶部添加以下行:
      require('dotenv').config();

    完成 . 现在,您可以使用 process.env.ENV_NAME 访问环境变量 .

  • 49

    如果要使用Node.js程序中生成的字符串键,例如 var v = 'HOME' ,则可以使用 process.env[v] .

    否则, process.env.VARNAME 必须在您的程序中进行硬编码 .

  • 7
    process.env.ENV_VARIABLE
    

    其中 ENV_VARIABLE 是您要访问的变量的名称 .

    Node.js docs for process.env .

相关问题