Node js Express 中的环境变量(.env)

问题描述 投票:0回答:4

是否可以为所有不同的部署环境(例如开发、生产等)提供一个 .env 文件。根据环境需要加载相应的环境变量文件。

node.js express
4个回答
54
投票

是的。您可以使用 dotenv

module
例如:

.env

DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3

app.js

require('dotenv').config()

const db = require('db')
db.connect({
  host: process.env.DB_HOST,
  username: process.env.DB_USER,
  password: process.env.DB_PASS
}

11
投票

安装dotenv模块

npm install dotenv 

.env

NODE_ENV=development
PORT=3000

index.js

let dotenv = require('dotenv').config()
console.log(dotenv);

输出:-

{ parsed: { NODE_ENV: 'development', PORT: '3000' } }

文件限制:-

---| index.js
   | .env

0
投票

是的,不一定是 .env 文件,而是 json/js 文件。

您可以创建一个如下所示的文件,并在环境中需要该文件 -

let config = require('./pathToFile/')[process.env.NODE_ENV]

您的文件 -

{
"development" : {
    "dbConfig" : {
        "username" : "acaca",
        "password" : "ajbcjdca",
        "port" : "acdc",
         "etc" : "etc"
    },
    "serverConfig" : {
      "host" : "jabcjac.com",
      "port" : "4545",
      "etc" : "etc"
    },
    "AWSConfig" : {
      "accessKey" : "akcakcbk",
      "etc" : "etc"
    }
},
"production" : {
    "dbConfig" : {
        "username" : "acaca",
        "password" : "ajbcjdca",
        "port" : "acdc",
         "etc" : "etc"
    },
    "serverConfig" : {
        "host" : "jabcjac.com",
        "port" : "4545",
        "etc" : "etc"
    },
    "AWSConfig" : {
        "accessKey" : "akcakcbk",
        "etc" : "etc"
    }
},
"test" : {
    "dbConfig" : {
      "username" : "acaca",
      "password" : "ajbcjdca",
      "port" : "acdc",
       "etc" : "etc"
    },
    "serverConfig" : {
      "host" : "jabcjac.com",
      "port" : "4545",
      "etc" : "etc"
    },
    "AWSConfig" : {
      "accessKey" : "akcakcbk",
      "etc" : "etc"
    }
}
}

0
投票

是的,回答这个问题太晚了..

但是有一种简单易用的方法可以在express或任何其他节点应用程序中使用env文件,并且无需安装外部包。

node --env-file=.env app.js

此外,您可以传递多个 env 文件参数。后续文件将覆盖先前文件中定义的预先存在的变量。

node --env-file=.env --env-file=.development.env app.js
  • 你需要nodejs +20
  • 有关更多详细信息,请访问此处
  • 的原始nodejs文档
© www.soinside.com 2019 - 2024. All rights reserved.