簡體   English   中英

Heroku應用程序中的環境變量驗證

[英]Environment variables validation in heroku app

在heroku應用中使用環境變量之前,是否需要對環境變量進行驗證?

作為常規的編程實踐,我們應該對可能出錯的任何事物進行驗證,但是特定技術可能有其自己的習慣用法,而我對於部署在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}); 
});

在應用程序啟動時進行驗證會更有意義,因為對Heroku ENV變量的任何更改都意味着需要重新部署。
這是三十秒的代碼:

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具體取決於您認為更干凈的那個。

編輯您應該使用后者,它可以更快地進行基准測試

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM