了解如何為生產和開發環境設置不同的配置。
你可以為生產與開發環境設置不同的配置。
Node.js 假設它一直在開發環境中運行。但你可以通過設置 NODE_ENV=production
的環境變量,告訴 Node.js 你正在生產環境中運行。
通常,在 shell 中執行以下命令即可完成此操作:
export NODE_ENV=production
但最好將其放在您的 shell 配置文件中(例如使用 Bash shell 的 .bash_profile
),以便在系統重新啟動時此設置仍然有效。
你還可以在應用程序初始化命令之前加上環境變量:
NODE_ENV=production node app.js
這個環境變量是一個經常在外部庫中使用的約定。
將環境設置為 production
通常可以確保:
- 日誌保持在最低限度的關鍵級別
- 融入更多的緩存層以優化性能
例如,Express 使用的模板庫 Pug 如果 NODE_ENV
沒有設置為 production
,則會在調試模式下編譯。在開發模式下,每次請求都會編譯 Express 視圖,而在生產模式下則會被緩存。這只是其中一個例子,還有很多其他例子。
Express 提供了特定於環境的配置鉤子,根據 NODE_ENV
變量的值自動調用:
app.configure('development', () => {
//...
})
app.configure('production', () => {
//...
})
app.configure('production', 'staging', () => {
//...
})
例如,你可以使用這個來為不同模式設置不同的錯誤處理程序:
app.configure('development', () => {
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
})
app.configure('production', () => {
app.use(express.errorHandler())
})