了解如何為生產和開發環境設置不同的配置。

你可以為生產與開發環境設置不同的配置。

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())
})