Node.js開發者經常檢測環境變數
NODE_ENV
,但你是否知道設定這個值同時也具有著某些別的意義?閱讀本文你將發現這些。
NODE_ENV
是一個在Express框架中極其常用的環境變數。用其確定應用的執行環境(諸如開發,staging,生產,測試…)。
通常,應用將會執行在開發環境。我們可以通過改變process.env.NODE_ENV
來改變環境。讓我們來看看框架/庫在不同環境下的表現。
開發環境
-
顯示更多日誌
-
不快取檢視
-
生成較冗餘的錯誤資訊
-
js,css這類前端資源,不壓縮不快取
生產環境
以下是與框架無關的一些特點:
-
中介軟體及其他依賴會被切換到更高效的程式碼路徑
-
只安裝
dependencies
中的包,dependencies
與peerDependencies
的中包會被忽略
express.js
-
快取檢視框架
-
生成更簡短的錯誤資訊
-
快取資原始檔
sailsjs
-
可以使用CSRF
-
壓縮服務端響應(詳見https://www.npmjs.com/package…)
-
模組遷移的設定被強制定位`safe`。這可以保證在部署時不會破壞生產資料。
-
從
res.serverError()
追蹤錯誤資訊與錯誤棧會被存在日誌中而不是通過服務端響應返回。
mongoose
全域性禁用autoIndex。這能顯著提高效能(詳見http://docs.mongodb.org/manua…)。
還有許多這裡就不一一列出。如你所見,將NODE_ENV設為production能達到更好的效能。所以這個變數在全球Node開發者心中有如此重要的地位。你應該牢記“總是將NODE_ENV設為production”。