heroku应用程序中的环境变量验证

时间:2014-03-22 10:02:41

标签: validation heroku express

在heroku app中使用之前,我是否需要对环境变量进行验证?

作为一种常见的编程习惯,我们应该对可能出错的任何内容进行验证,但具体的技术可以有他们自己的习语,而且我对在heroku上部署的应用程序的最佳实践感兴趣。

例如,在快速应用程序中,如果执行验证,则显示错误页面,其名称为未初始化的变量:

app.get('/login', function(req, res) {
    if (!process.env.OAUTH2_SERVER) {
        res.render('env_error', { envVar : 'OAUTH2_SERVER' });
    } else {
        res.render('login', { oauth2Server : process.env.OAUTH2_SERVER});
    }
});

并且没有验证它看起来像这样:

app.get('/login', function(req, res) {
    res.render('login', { oauth2Server : process.env.OAUTH2_SERVER}); 
});

1 个答案:

答案 0 :(得分:0)

在app启动时进行验证更有意义,因为对Heroku ENV变量的任何更改都意味着重新部署。
这里有大约30秒的代码:

var checkEnv = ['OAUTH2_SERVER', 'other env var you care about', 'and so on'];
checkEnv.forEach(function (v) {
  if (typeof process.env[v] === "undefined") {
    console.err('Required environment variable "' + v '" is not present. Exiting.');
    process.exit(1);
  }
});

您可以更改第3行的if,以根据您认为更干净的方式检查process.env[v] === undefined

修改您应该使用后者benchmarks faster