首頁  >  文章  >  web前端  >  使用Node如何設定檔(詳細教學)

使用Node如何設定檔(詳細教學)

亚连
亚连原創
2018-06-14 11:34:232424瀏覽

這篇文章主要給大家介紹了關於Node實戰之不同環境下配置文件使用的相關資料,文中透過範例程式碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面一起學習學習吧。

前言

在使用Node.js 寫一個完整的專案時,程式中往往需要用到一些可配置的變量,從而使得程式能在不同的環境中運行,而眾所周知,在實際的專案會存在多個不同的環境,不同的環境下,一些配置是不相同的,如何在不同的環境下調用不同的配置,提高開發效率?下面話不多說了,來一起看看詳細的介紹吧。

1. config-lite模組

先介紹一個設定模組config-lite,使用指令npm i config-lite --save安裝。

通常我們會針對不同的環境,將設定寫入不同的設定檔中,在Node專案下新建config目錄,裡面新建不同環境的設定文件,這裡我以『開發』以及『生產』兩個環境作為例子來講解如何操作。

開發環境中,我們在config目錄下新建兩個文件:test.js和default.js,你可能會問,為啥沒有生產機配置文件,因為生產機配置要在生產環境下再創建嘛。

在test.js設定檔中寫入程式碼如下(PS. 這裡以mysql的配置為例):

// test.js
module.exports = {
 mysql : {
 host: "localhost",
 user: "lupeng",
 password: "080910",
 database: "b1imd"
 }
};

default.js裡寫入一些預設的設定文件,例如session的配置等。

// default.js
module.exports = {
 mysql : {
 host: "10.20.141.220",
 user: "lupeng",
 password: "123456",
 database: "b1imd"
 },
 session: {
 secret: 'keyboard cat',
 resave: false,
 saveUninitialized: true,
 cookie: {
  maxAge: 1000*60*60
 }
 }
};

好了,設定檔寫好了,要如何使用呢?這裡我們使用的config-lite模組,這個模組是依據環境變數來選擇不同的設定檔的,所以在使用之前我們需要修改package.json裡的啟動指令:

"scripts": {
 "start": "NODE_ENV=production supervisor --harmony -i views/ ./bin/www",
 "test": "NODE_ENV=test supervisor --harmony -i views/ ./bin/www"
 },

可以看到,上面有兩條啟動指令,一條是針對生產機,設定了NODE_ENV=production,一條是針對測試機,設定了NODE_ENV=test,當我們使用npm test啟動專案的時候,config-lite會去抓取test.js配置,會與default.js裡配置去合併,如果有相同的對象,會覆蓋default.js裡的配置。如上例子都有mysql的對象,那麼這裡會以test.js裡的對象為準。

好了,以下來介紹如何在專案中使用config-lite模組,在app.js裡程式碼如下:

// 省略...
var config = require('config-lite')(__dirname);
// 省略...
app.use(session(config.session));
console.log("mysql服务器:" + config.mysql.host); // display mysql-config
// 省略...

引入之後,可以直接使用設定檔中的設定對象。

2. 生產環境

那麼在生產環境中,要如何使用呢?上面已經介紹了config-lite基本原理以及用法,在生產環境的時候,我們只需要在生產機環境中config目錄下新建production.js文件,然後使用啟動命令npm start即可。

為了避免測試環境以及生產壞境配置文件混淆,可以透過.gitignore文件忽略配置文件,添加如下:

# config
config/*
!config/default.*

這樣,git會忽略除了default.js之外的配置文件,在本機開發環境中,可以建立多個設定檔測試使用,只需設定對應的環境變數即可。需要注意的是環境變數名稱需同設定檔名一樣。

3. windows環境

#也許你是多系統環境開發者,可能同時在Linux和windows環境下開發,由於windows下設定環境的變數的語法不太一樣,所以可以在package.json啟動指令中再加上兩句,如下:

"scripts": {
 "start": "NODE_ENV=production supervisor --harmony -i views/ ./bin/www",
 "test": "NODE_ENV=test supervisor --harmony -i views/ ./bin/www",
 "winStart": "SET NODE_ENV=production&&supervisor --harmony -i views/ ./bin/www",
 "winTest": "SET NODE_ENV=test&&supervisor --harmony -i views/ ./bin/www" 
 }

這樣,如果部署在windows環境下,在config目錄下新建production .js設定文件,啟動命令npm winStart;如果部署在Linux或類別Unix環境下,同樣是建立production.js,啟動命令npm start即可。

上面是我整理給大家的,希望今後對大家有幫助。

相關文章:

詳細解讀React Native Flexbox佈局

在vue單一檔案中有關引用路徑有哪些方法?

詳細介紹weex中的webpack.config.js改造

#

以上是使用Node如何設定檔(詳細教學)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn