」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 高效能 Node.js 靜態檔案服務 — 使用 Rust

高效能 Node.js 靜態檔案服務 — 使用 Rust

發佈於2024-11-04
瀏覽:231

幾個月前,我們發布了 Encore.ts — TypeScript / Node.js 的開源後端框架。

由於已經有很多框架,我們想分享我們所做的一些異常設計決策以及它們如何提高效能和開發人員體驗。

在 Node.js 中提供靜態文件,使用 Rust 獲得高效能

Encore.ts 內建支援提供靜態資源(例如圖片、HTML 和 CSS 檔案以及 JavaScript 檔案)。

當您想要提供靜態網站或已預先編譯為靜態檔案的單頁應用程式 (SPA) 時,這非常有用。

定義靜態檔案時,這些檔案直接從 Encore.ts Rust 執行時提供。

這意味著不會執行 JavaScript 程式碼來服務文件,從而釋放 Node.js 運行時以專注於執行業務邏輯。

High performance Node.js static file serving — using Rust

這大大加快了靜態檔案服務速度,並改善了 API 端點的延遲。

我們最近發布了基準測試,顯示它比基於 Express.js 的 Node 應用程式快 9 倍。

在文件中了解更多

範例應用程式展示如何使用 Encore.ts 提供靜態檔案

程式碼範例

在 Encore.ts 中提供靜態檔案的工作方式與定義 API 端點類似,但使用 api.static 函數而非普通的 api 函數。

import { api } from "encore.dev/api";

export const assets = api.static(
  { expose: true, path: "/frontend/*path", dir: "./assets" },
);

這將提供 /frontend 路徑前綴下 ./assets 目錄中的所有檔案。

Encore 會自動在目錄的根目錄下提供index.html 檔案。在上面的範例中,這意味著請求URL /frontend 將提供文件./assets/index.html,/frontend/hello 將提供文件./assets/hello 或./assets/hello/index.html (存在者為準)。

總結

透過將基於 Rust 的執行時間與 Node.js 一起使用,Encore.ts 能夠提高 TypeScript 應用程式的效能。

如果效能對您的專案很重要,嘗試 Encore.ts 可能是個好主意。

而且它都是開源的,因此您可以查看程式碼並在 GitHub 上做出貢獻。

版本聲明 本文轉載於:https://dev.to/encore/high-performance-nodejs-static-file-serving-using-rust-420m?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3