【发布时间】:2017-11-09 12:30:44
【问题描述】:
我已经尝试了 node.js 从文件 .env 加载环境变量。如何在没有文件的情况下设置环境变量?
【问题讨论】:
-
您可以通过运行命令动态分配环境变量
-
设置 NODE_ENV=production
标签: angularjs node.js nginx environment-variables environment
我已经尝试了 node.js 从文件 .env 加载环境变量。如何在没有文件的情况下设置环境变量?
【问题讨论】:
标签: angularjs node.js nginx environment-variables environment
这可能不是您正在寻找的答案,但您可以使用Node Foreman 或Heroku Start 在启动节点应用程序之前自动加载您的 .env 文件。
如果你不想这样做,你可以使用这样的东西:
fs = require('fs');
path = require('path');
function readEnv() {
return new Promise(
function(resolve, reject) {
let envPath = path.join(process.cwd(), '.env');
fs.readFile(envPath, 'utf8',
(err, data) => {
if (err) {
return reject(err);
}
let env = {};
data.split(/[\r\n]+/g).forEach(
(line) => {
line = line.trim();
if (line) {
let idx = line.indexOf('=');
if (idx > -1) {
let key = line.substr(0,idx);
let value = line.substr(idx+1);
env[key] = value;
}
else {
env[line] = '';
}
}
}
);
resolve(env);
}
);
}
);
}
function processEnv() {
return readEnv().then(
(env) => {
Object.keys(env).forEach(
(key) => {
process.env[key] = env[key];
}
);
return true;
}
).catch(
(err) => {
console.error(err);
}
);
}
module.exports = processEnv;
【讨论】: