[英]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.