個人記錄:Node 動態識別運行環境

個人記錄:Node 動態識別運行環境

可能我的描述不準確

可以動態識別當前環境是開發模式還是線上模式

比如:

var HOST = {
    DEV:'192.168.1.235',
    PRO:'192.168.1.231'
}
var PORT = {
    DEV:'8080',
    PRO:'802'
}
var PATH = {
    DEV:'/mockjsdata/2',
    PRO:''
}
var RUN = 'PRO';

工作中大家都有幾種環境的區分,開發環境,測試環境,線上環境,對於我之前的一個項目來講,區別在於host:port/path,在開發環境–>測試環境–>線上環境,每次都是手動在代碼裏修改 RUN 的值,很麻煩,所以主管便讓我實現可以動態識別…

BUT,我是前端菜鳥啊,不懂啥教動態識別啊,於是乎百度…谷歌…羣友…各種諮詢,也許是我描述不對,所以並沒有得到想要的答案。

然而呢,突然發現這個問題其實很簡單的,之前沒怎麼接觸過命令行,常用的命令不過是 node * cnpm install *

node裏邊其實有個 process 對象,這個對象是Node的一個全局對象,它提供當前Node進程的信息。它可以在腳本的任意位置使用,不必通過require命令加載。好了,廢話說完了,真正的乾貨在下邊…

process.env

process.env屬性返回一個對象,包含了當前Shell的所有環境變量。比如,process.env.HOME返回用戶的主目錄。

我的做法是,新建一個環境變量RUN,用它確定當前所處的開發階段,生產階段設爲PRO,開發階段設爲DEV,然後在腳本中讀取process.env.RUN即可。

運行腳本時,改變環境變量,可以採用下面的寫法。

var HOST = {
    DEV:'192.168.1.235',
    PRO:'192.168.1.231'
}
var PORT = {
    DEV:'8080',
    PRO:'802'
}
var PATH = {
    DEV:'/mockjsdata/2',
    PRO:''
}
var RUN = process.env.RUN||'DEV';

然後在運行文件時這個樣子:

set RUN=PRO && node ./bin/www

好了,這樣就可以了,首先會先讀取RUN有沒有賦值,如果沒有就默認使用開發地址,如果設置了值就會使用設置的地址,當然你也可以增加判斷,如果輸入不正確進行提示之類的…

關於process對象的詳細介紹,可以去看下阮大神的文章:http://javascript.ruanyifeng.com/nodejs/process.html#toc4

全文完,希望對初學Node的大家有些許幫助

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章