数か月前、私たちは Encore.ts (TypeScript / Node.js 用のオープンソース バックエンド フレームワーク) をリリースしました。
すでに多くのフレームワークが存在するため、私たちが行った異常な設計上の決定のいくつかと、それがパフォーマンスと開発者のエクスペリエンスの向上にどのようにつながるかを共有したいと思います。
Encore.ts には、静的アセット (画像、HTML、CSS ファイル、JavaScript ファイルなど) を提供するためのサポートが組み込まれています。
これは、静的 Web サイトや、静的ファイルにプリコンパイルされたシングルページ アプリケーション (SPA) を提供する場合に便利です。
静的ファイルを定義する場合、ファイルは Encore.ts Rust ランタイムから直接提供されます。
これは、ファイルを提供するために JavaScript コードが実行されず、Node.js ランタイムが解放されてビジネス ロジックの実行に集中できることを意味します。
これにより、静的ファイルの提供が大幅に高速化されるだけでなく、API エンドポイントのレイテンシーも改善されます。
最近、Express.js ベースの Node アプリケーションよりも 9 倍高速であることを示すベンチマークを公開しました。
ドキュメントで詳細をご覧ください
Encore.ts を使用して静的ファイルを提供する方法を示すサンプル アプリ
Encore.ts での静的ファイルの提供は、API エンドポイントを定義する場合と同様に機能しますが、通常の API 関数の代わりに api.static 関数を使用します。
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 が提供されることを意味します (存在するもの)。
Node.js と並行して Rust ベースのランタイムを使用することにより、Encore.ts は TypeScript アプリケーションのパフォーマンスを向上させることができます。
プロジェクトにとってパフォーマンスが重要な場合は、Encore.ts を試してみることをお勧めします。
すべてオープンソースなので、コードをチェックアウトして GitHub に貢献できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3