你可以这样设置你的文件夹目录:
config.js
var config = {};
//development
var env = process.env.NODE_ENV || 'development';
if(env === 'development'){
config = require('./env/development');
}else if (env === 'test'){
config = require('./env/test');
} else if(env === 'production'){
config = require('./env/production');
}
module.exports = config;
development.js
var envFile = __dirname + '/env.json';
var jsonfile = require('jsonfile');
var envVars = jsonfile.readFileSync(envFile);
module.exports = {
value: envVars["VALUE"]
};
production.js
module.exports = {
value: process.env.VALUE
};
test.js
module.exports = {
value: 'Some value'
};
这里的基本思想是每个开发者都可以在自己的 env.json 文件中配置自己的密钥。对于生产,您可以将它们存储在某个安全文件中,然后在运行应用程序之前将它们加载到您想要的环境中。使用 heroku,可以轻松配置这些环境变量并为您存储它们。看看here
您还可以省略任何您可能不需要的细节,例如开发或测试内容。
编辑:一个例子
首先从命令行尝试这个以了解正在发生的事情。在这个例子中,我使用的是 linux。如果您正在使用其他任何东西,只需研究如何在您正在使用的命令行中设置环境变量。
app.js
var config = require('./config/config');
//get value from config
var value = config.value;
从 bash 命令行设置环境变量
$: VALUE="my value"
$: NODE_ENV="production"
$: export VALUE
$: export NODE_ENV
运行应用程序
$: node app.js
或者如果你正在使用 npm 脚本
$: npm start
当您运行应用程序节点时,将自动加载 process.env,并在命令行 shell 中定义每个环境变量。现在,如果您使用的是 heroku,则可以按照我之前在此答案中发布的链接进行操作,而不必设置它们。只需在 heroku 界面中定义它们,它就会为您加载它们。