在节点开发期间测试ENV变量

时间:2015-07-01 07:11:31

标签: javascript node.js environment-variables

我为ENV变量创建了以下配置文件,我想在开发中测试它(在开发周期中我想测试prod和dev变量并得到不同的配置值),我该怎么做?

module.exports = function () {

    switch (process.env.NODE_ENV) {
        case 'development':
            return
        {
            PORT : 3010
            UUID : '13bfbcf4-1f2f-11e5-b5f7-727283247c7f'
        };

        case 'production':
            return
        {
            PORT : 4000
            UUID : '3e30020a-1f2f-11e5-b5f7-727283247c7f'
        };

        default:
    }
};  

在我的server.js文件中我使用

config = require('./config');
...
 configs = new config();

但不确定如何测试它并传递值,因为当我放在上面的行process.env.NODE_ENV = 'development'之后我得到了错误,我知道如何在本地测试prod和dev的配置?

另外这是推荐使用dev / prod的方法吗?

1 个答案:

答案 0 :(得分:1)

您执行操作的顺序非常重要:您需要在运行配置功能之前设置环境变量:

var config = require('./config');

process.env.NODE_ENV = 'production';

var configs = config();

如果您想在外部进行设置,并且只要您正在运行某种类Unix操作系统,请按以下步骤启动您的应用:

$ env NODE_ENV=production node server

我更喜欢自己使用config模块,它负责加载正确的配置文件等。