為不同的環境使用不同的 PropertiesConfiguration,例如 dev qa staging 等

大規模應用程式在不同環境中執行時通常需要不同的屬性。我們可以通過將引數傳遞給 NodeJs 應用程式並在節點程序中使用相同的引數來載入特定的環境屬性檔案來實現這一點。

假設我們有兩個不同環境的屬性檔案。

  • dev.json

      {
          "PORT": 3000,
          "DB": {
              "host": "localhost",
              "user": "bob",
              "password": "12345"
          }
      }
    
  • qa.json

      {
          "PORT": 3001,
          "DB": {
              "host": "where_db_is_hosted",
              "user": "bob",
              "password": "54321"
          }
      }
    

應用程式中的以下程式碼將匯出我們想要使用的相應屬性檔案。

process.argv.forEach(function (val) {
    var arg = val.split("=");
    if (arg.length > 0) {
        if (arg[0] === 'env') {
            var env = require('./' + arg[1] + '.json');
            exports.prop = env;
        }
    }
});

我們為應用程式提供如下引數

node app.js env=dev

如果我們使用程序管理器一樣永遠比它那樣簡單

forever start app.js env=dev