Node.js,開發與生產環境的差異
您可以為生產環境和開發環境配置不同的設定。
Node.js假設它始終在開發環境中運行。您可以通過設置 NODE_ENV=production
環境變量來告知Node.js您正在生產中運行。
通常通過執行以下命令來完成這一點
export NODE_ENV=production
在 shell 中執行,但最好將其放入您的 shell 配置文件(例如 .bash_profile
使用 Bash shell)中,否則在系統重新啟動時該設置不會持久存在。
您也可以通過在應用程序初始化命令之前加上環境變量來應用該環境變量。
NODE_ENV=production node app.js
這個環境變量是一個廣泛用於外部庫的約定。
將環境設置為 production
通常確保
- 記錄保持最低限度,只有必要的級別
- 更多的緩存層次進行優化性能
例如 Pug,被 Express 使用的模板庫,如果 NODE_ENV
沒有設置為 production
,則以調試模式編譯。在開發模式下,每次請求都會編譯Express視圖,而在生產環境中,它們會被緩存。還有很多其他例子。
您可以使用條件語句在不同的環境中執行代碼。
if (process.env.NODE_ENV === 'development') {
// ...
}
if (process.env.NODE_ENV === 'production') {
// ...
}
if (['production', 'staging'].includes(process.env.NODE_ENV)) {
// ...
}
例如,在 Express 應用程序中,您可以使用這個功能根據不同的環境設置不同的錯誤處理程序。
if (process.env.NODE_ENV === 'development') {
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
}
if (process.env.NODE_ENV === 'production') {
app.use(express.errorHandler());
}