2013-08-20 48 views
0

從歷史上看,在我所從事的大多數大型項目中,我們都有一些由開發人員運行的構建腳本,用於設置它們的環境,例如設置iis,數據庫遷移,模板配置文件等使用nodejs構建不同環境的應用程序

由於每個環境都是不同的,我想一般有一組爲每個環境配置文件,如dev.configqa.configrelease-candidate.config,那麼構建過程運行時,將利用<environment>.config文件,以弄清其設置應該是。通過這種方式,我的開發環境可以很好地構建,構建服務器也可以自動完成其工作。

無論如何在.net中我們有配置文件,如可以模板化的web.config,在nodejs世界中是否有這個概念?因爲我想擁有一個文件,其中包含應用程序運行所需的所有配置值,而無需將它們放入應用程序代碼中。

回答

2

你可以做到這一點非常簡單,實際上。只要將您的所有配置文件.js,像

{ 
    mongodb: { 
    connection: 'http://mongodb.com/mydb:12323/user/password', 
    options: { 
     keepConnection: true 
    } 
    }, 

    app: { 
    deploymentKey: '1234' 
    }, 

    // etc 
} 

所以,你將有2-3個文件,這取決於你有環境的數量。

/config/development.js 
    /config/production.js 
    /config/test.js 
    /config/staging.js 

環境類型通常由NODE_ENV變量暴露。然後,你必須非常簡單的模塊,加載配置:

var util = require('util'); 

var env = process.env.NODE_ENV || 'development'; 
var config = util.format('/%s.config.js', env); 

module.exports = require(__dirname + config); 

結帳一些實際的代碼here;

+0

這是更習慣於這樣做的方式,儘管其他答案是完全有效的解決方案,我個人更喜歡這種解決方案。 – Grofit

+0

是的,我的主要觀點 - 你不需要框架或lib,這是非常簡單的任務。 –

+0

NODE_ENV變量的這種用法已經成爲節點社區中的事實標準。 – Feugy

相關問題