首頁 > web前端 > js教程 > 5個簡易性能調整node.js express

5個簡易性能調整node.js express

Christopher Nolan
發布: 2025-02-19 09:06:11
原創
571 人瀏覽過

5 Easy Performance Tweaks for Node.js Express

關鍵要點

  • 切換到生產模式可顯著提升 Express 應用性能,因為生產模式省去了開發模式中的日誌記錄和異常堆棧跟踪任務。
  • 在 Express 4.x 中啟用 GZIP 壓縮可以縮小 HTTP 負載,從而提高性能。這可以通過安裝 compression 模塊並將其作為第一個中間件函數來實現。
  • 刪除不必要的中間件、考慮使用更簡單的模板引擎以及有效緩存常用變量可以進一步優化 Express 應用的性能。可以使用 Gulp 等構建工具來壓縮和合併 HTML 模板、CSS 和 JavaScript 文件,並且應限制會話變量的使用以避免內存相關的性能問題。

Node.js 徹底改變了 Web 開發,Express 框架功不可沒。 Express 可能不是最快或最先進的服務器選項,但它幾乎肯定是使用最廣泛的,每月下載量超過 300 萬次。如果您什麼都不做,Node.js 和 Express 的運行速度也會非常快。但是,有一些簡單的方法可以使 Express 4.x 運行得更快……

  1. 切換到生產模式

Express 可以運行在多種模式下。默認情況下,它假定為開發模式,該模式提供異常堆棧跟踪和其他日誌記錄任務。還有一個調試模式,它將消息記錄到控制台,例如:

<code>DEBUG=express:* node ./app.js</code>
登入後複製
登入後複製

在您的實時服務器上,您可以通過切換到生產模式來顯著提高性能。這可以通過將 NODE_ENV 環境變量設置為 production 來實現。可以在啟動 Express 應用程序之前在 Windows 的當前會話中設置它:

<code>set NODE_ENV=production</code>
登入後複製
登入後複製

或 Mac/Linux:

<code>export NODE_ENV=production</code>
登入後複製
登入後複製

Linux 用戶還可以在啟動時在一行中設置 NODE_ENV:

<code>NODE_ENV=production node ./app.js</code>
登入後複製
登入後複製

理想情況下,您應該通過將 <code>export NODE_ENV=production</code> 添加到您的 ~/.bash_profile 或相應的啟動腳本中來配置您的環境。

  1. 啟用 GZIP

Express 4.x 提供了最少的可用功能,可以通過中間件來增強。一個不太明顯的缺失功能是 GZIP 壓縮,它可以縮小 HTTP 負載,以便瀏覽器在接收時可以對其進行擴展。要添加 GZIP,請使用 npm 安裝 compression 模塊:

<code>npm install compression --save</code>
登入後複製
登入後複製

(根據您的設置,您可能需要在 Mac/Linux 上使用 sudo——有很多方法可以解決這個問題。)在您的主要應用程序啟動文件中,包含 compression 模塊:

<code>var compression = require('compression');</code>
登入後複製

然後將其作為第一個中間件函數(在其他 Express .use 方法之前)安裝:

<code>DEBUG=express:* node ./app.js</code>
登入後複製
登入後複製
  1. 刪除不必要的中間件

如果您使用 Express Generator 或類似的過程生成了預構建的應用程序,請刪除您未使用的任何中間件模塊。例如,如果您不使用 cookie,您可以刪除 cookie-parser 模塊或使用 req.cookies 和 res.cookie 實現更簡單的替代方案。在生產模式下,可以刪除某些進程,例如調試輸出,例如:

<code>set NODE_ENV=production</code>
登入後複製
登入後複製

也就是說,最好保留 serve-favicon。瀏覽器會頻繁請求 favicon.ico 文件,並且該模塊可以改進緩存。

  1. 考慮使用更簡單的模板引擎

Jade 是許多 Express 安裝的默認模板引擎,它是一個不錯的選擇。但是,如果您樂於編寫自己的 HTML,並且只需要基本的插值和求值,請考慮使用輕量級的替代方案,例如 doT,它可以使用 express-dot-engine 模塊作為 Express 中間件添加。或者,您可以繞過模板引擎以獲得更簡單的響應,例如:

<code>export NODE_ENV=production</code>
登入後複製
登入後複製

無論您使用哪個模板引擎,始終確保啟用了視圖緩存:

<code>NODE_ENV=production node ./app.js</code>
登入後複製
登入後複製
  1. 記住緩存!

與大多數基於服務器的應用程序不同,Node.js 應用程序永久運行。因此,您可以設置諸如數據庫連接對象之類的常用變量一次,並在每個用戶的每個請求期間重複使用它們。可以根據需要擴展此概念。一般來說,您可以緩存的常用項目越多,性能就越好。例如,假設您的基於 Express 的 CMS 應用程序在主頁上顯示了您最近五篇文章的鏈接。該列表可以生成並存儲在一個變量中,並且僅在發布新文章時更新。

額外快速提示

想要更多? …

  • 考慮使用 nginx 來提供靜態內容,並減輕 Node.js 和 Express 的負載。
  • 使用 Gulp 等構建工具來壓縮和合併您的 HTML 模板、CSS 和 JavaScript 文件。
  • 限制會話變量的使用。用戶會話數據通常存儲在內存中,隨著使用量的增長,這可能會導致性能問題。考慮只使用 ID,然後在請求期間從數據庫中獲取用戶信息。
  • 將最大 HTTP 套接字數從五個增加到更高的數字,例如:
<code>npm install compression --save</code>
登入後複製
登入後複製
  • 在可能的情況下,並行調用阻塞操作序列,而不是按順序調用。
  • 避免在除應用程序初始化之外的所有內容中使用同步阻塞調用。
  • 始終注意,為一個用戶運行的代碼會阻塞為其他每個用戶運行的代碼。

您是否有其他關於 Node.js 或 Express 的性能提示?我很樂意在評論中聽到它們。

(此處應添加關於 Node.js 性能調整的常見問題的章節,內容與輸入文本中提供的相同)

以上是5個簡易性能調整node.js express的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板