原文
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”。