TinyHTTP対Expressノードの比較.JSフレームワーク
17676 ワード
執筆Shubham Kumar ✏️
このガイドでは、ノードでWebアプリケーションを構築するための最も一般的に使用されるフレームワークのいずれかを比較します.JSエクスプレス.JS、TinyHTTP、その最も人気のある選択肢の一つ.
我々がカバーするものは、ここにあります: What is tinyhttp?
What is Express.js?
tinyhttp vs. Express.js: A basic comparison
Performance benchmark
tinyhttp and Express.js in action: A simple example
tinyhttp 最新のWebフレームワークは、Expressに似ています.タイプスクリプトで書かれたjs.これは依存性の非常に最小限の量を使用して表現に比較します.それは超高速になります.
TinyHTTPルーティング、REQ/RESの拡張機能、およびはるかに、すべての中にのみ6つのモジュールに応じて- 4つのTinyHTTP独自のものです.
すべてのミドルウェアは、表現のために作成されました.jsはスムーズにtinyHTTPで動作します.チェックアウトtinyhttp + Express/GraphQL Expressを使用する方法の例の統合.JSミドルウェア.
TinyHTTPもAsyncをサポートしています/急行ではないルートのための待機.jsTinyHTTPの中には適切な型と関数チェッカーがあります.つまり、syncとasyncはtinyHTTPでうまく動作します.チェックアウトasync and MongoDB 例: asyncハンドラの作成方法を参照してください.
TinyHTTPの最も重要な特徴の短いリストですofficial docs : エクスプレスより2.5倍速い フルエクスプレスミドルウェアサポート ( Asyncミドルウェアのサポート) ネイティブESMとCommonJSのサポート レガシー依存性はなく、JavaScript自体 ボックスからのタイプ いいえ内蔵ミドルウェアのサポート
Express.js は柔軟なノードです.Webおよびモバイルアプリケーションの機能の堅牢なセットを提供するJSフレームワーク.強健なAPIを作成することは非常に簡単です.JSは多くのミドルウェアと他のビルトインサポートで来ます.
エクスプレス.JSはデータベースが付属していませんこれは、サードパーティ製のモジュールは、ほぼすべてのデータベースとのインターフェイスをすることができます残っている.エクスプレス.jsサポートtemplate engines それで
このフレームワークは、それが最小限で柔軟なノードとして機能するような方法で構築されます.JS Webアプリケーションフレームワーク、単一、マルチページ、およびハイブリッドWebアプリケーションを構築するための機能の堅牢なセットを提供する.
急行の特徴js オープンソースコミュニティサポート 高速アプリ開発 簡単に学ぶ テンプレートエンジンサポート I/O処理 内蔵ミドルウェアサポート
TinyHTTPとExpress V 4のハイレベル比較のために、最小ノードを見ましょう.JSバージョン、ECMAScriptバージョン、テストカバレッジなど
基準
tinyHTTP
エクスプレスV 4
最小サポートノード.JSバージョン
12.4.0
0.10.0
ミニマムサポート
ES 2019
ES 5 (?)
✔️
✔️
試験範囲
92 %
100 %
ネイティブESMにコンパイル
✔️
✖️
タイプスクリプトのサポート
✔️
✖️
パッケージサイズ( core only )
35.2 KB
208 KB
内蔵ミドルウェア
✖️
✔️
上の表のメモ 最小ノード.TinyHTTPが動作するために必要なJSバージョンは12.4.0ですが、Express V 4では、ノードでも作業を開始できます.js 0.10.0 tinyHTTPのための最小限のサポートされているバージョンはES 2019(ES 10)です、しかし、Express V 4で、我々はES 5を必要とします CodebaseのためのテストカバレッジはTinyHTTPのための92パーセントと急行のための100パーセントです.JS V 4 ES 6(またはES 2015)NORMで導入されたESM(ECMAScriptモジュール)仕様は、JavaScriptでモジュールをインポートして、エクスポートする方法を説明します.私たちはTinyHTTPでESMをネイティブに使用することができますが、外部サポートも必要ですBabel , 急行.js 急行と違って.JS , TinyHTTPはTypescriptサポートを備えています tinyHTTPのコアパッケージサイズは35.0 KBです.js TinyHTTPは内蔵ミドルウェアが付属していません.エクスプレス.JSにはbuilt-in middleware
基本的な方法で、パフォーマンスレポートを見てみましょうfastify benchmarking tool . ここではパラメータをreq/s,転送/s,遅延を用いてフレームワークの性能を測定した.
以下は、このベンチマークに使用されるハードウェア、システム、および条件に関するいくつかの注意事項です. ハードウェア Xiaomi Pro 2019版(ラップトップ) インテル・コア RAM : 16 GB システム カーネル5.5.19 - 2 ノード15.5 条件 100接続 10パイプライン 40 s持続時間 フレームワーク
レーク/秒
転送/秒
潜時
@ tinyHTTP/app ( w/o exts )
24575
3.81 MB
3.37 ms
@ tinyHTTP/app ( ESM )
22820
3.54 MB
4.04 ms
@ tinyHTTP/app ( CJS )
22637年
3.51 MB
4.08 ms
エクスプレス4.17.1
12986年
2 MB
7.11 ms
上の表から、TinyHTTPはExpressよりも低いレイテンシで1秒あたりの転送を行うことができます.JS V 4
注:ベンチマークは完全に正確ではなく、すべての実行とすべてのマシンで異なるかもしれません.キーは絶対値の代わりに割合を比較することです.
パフォーマンスベンチマークを終了するには、tinyHTTP
今すぐTinyHTTPとExpressを見ることができるので、単純な例のアプリを構築する時間です.側のアクション側のJS.
任意のパッケージマネージャを使用してtinyHTTPとExpressをインストールできます.私は使用するnpm デモ.
TinyHTTPをインストールするには、次の手順に従います.
エクスプレス.JSとTinyHTTPアプリは非常に同様に構造化されます.あなたが急行を知っているならば.それから、あなたはTinyHTTPも知っています.
tinyHTTP :
使えます
一番人気があるので.JSミドルウェアも時代遅れのモジュールを使用します、tinyHTTPはそのような人気のウェアのその書き直し/リメイクのセットを提供します
では、どのようにTinyHTTPとExpressの基本的なルーティングを処理するかを見ましょう.jsエクスプレス.多くのヘルパー機能が含まれています
tinyHTTP :
TinyHTTPは高速で、光であり、バックエンドのアプリケーションのために今日それを使用して起動することができます.The tinyhttp repository 含んでいるexamples , 含むMongoDB and GraphQL 統合.私はすぐに最低限のコードを開始する必要があるTinyHTTPを使用することをお勧めします.
と言った.JSはまだ人気があり、オープンソースのコミュニティサポートと簡単な学習曲線のために主要なプロジェクトや産業で使用され続けます.
ノードベースのWebアプリケーションやウェブサイトの展開は簡単です.あなたのノードのインスタンスがあなたのアプリケーションにリソースを提供し続けていることを確認することは物事がより厳しい取得です.あなたがバックエンドまたはサードパーティサービスへの要求を確実にすることに興味があるならば、成功してください.try LogRocket .
LogRocket ウェブアプリのDVRのように、あなたのサイトで起こる文字通りのすべてを記録してください.問題が起こる理由を推測する代わりに、あなたは根本的な原因を理解するために問題のネットワーク要求に関して集計して、報告することができます.
ページのロード時間などのベースラインのパフォーマンスのタイミング、最初のバイト、低速ネットワークのリクエストにログを記録するためにあなたのアプリケーションをログ出力器、およびまた、RUDX、NGRX、およびVUEXのアクション/状態を記録します.Start monitoring for free .
このガイドでは、ノードでWebアプリケーションを構築するための最も一般的に使用されるフレームワークのいずれかを比較します.JSエクスプレス.JS、TinyHTTP、その最も人気のある選択肢の一つ.
我々がカバーするものは、ここにあります:
ThinyHTTPとは
tinyhttp 最新のWebフレームワークは、Expressに似ています.タイプスクリプトで書かれたjs.これは依存性の非常に最小限の量を使用して表現に比較します.それは超高速になります.
TinyHTTPルーティング、REQ/RESの拡張機能、およびはるかに、すべての中にのみ6つのモジュールに応じて- 4つのTinyHTTP独自のものです.
すべてのミドルウェアは、表現のために作成されました.jsはスムーズにtinyHTTPで動作します.チェックアウトtinyhttp + Express/GraphQL Expressを使用する方法の例の統合.JSミドルウェア.
TinyHTTPもAsyncをサポートしています/急行ではないルートのための待機.jsTinyHTTPの中には適切な型と関数チェッカーがあります.つまり、syncとasyncはtinyHTTPでうまく動作します.チェックアウトasync and MongoDB 例: asyncハンドラの作成方法を参照してください.
TinyHTTPの最も重要な特徴の短いリストですofficial docs :
エクスプレスとはJS ?
Express.js は柔軟なノードです.Webおよびモバイルアプリケーションの機能の堅牢なセットを提供するJSフレームワーク.強健なAPIを作成することは非常に簡単です.JSは多くのミドルウェアと他のビルトインサポートで来ます.
エクスプレス.JSはデータベースが付属していませんこれは、サードパーティ製のモジュールは、ほぼすべてのデータベースとのインターフェイスをすることができます残っている.エクスプレス.jsサポートtemplate engines それで
(path, locals, callback)
署名.このフレームワークは、それが最小限で柔軟なノードとして機能するような方法で構築されます.JS Webアプリケーションフレームワーク、単一、マルチページ、およびハイブリッドWebアプリケーションを構築するための機能の堅牢なセットを提供する.
急行の特徴js
TinyHTTP対Express基本的な比較
TinyHTTPとExpress V 4のハイレベル比較のために、最小ノードを見ましょう.JSバージョン、ECMAScriptバージョン、テストカバレッジなど
基準
tinyHTTP
エクスプレスV 4
最小サポートノード.JSバージョン
12.4.0
0.10.0
ミニマムサポート
ES 2019
ES 5 (?)
req
/ res
拡張✔️
✔️
試験範囲
92 %
100 %
ネイティブESMにコンパイル
✔️
✖️
タイプスクリプトのサポート
✔️
✖️
パッケージサイズ( core only )
35.2 KB
208 KB
内蔵ミドルウェア
✖️
✔️
上の表のメモ
req
イベントを発生させたHTTPリクエストに関する情報を含むオブジェクトです.応えてreq
, お使いくださいres
を返します.TinyHTTPとExpress V 4サポートreq
/res
拡張パフォーマンスベンチマーク
基本的な方法で、パフォーマンスレポートを見てみましょうfastify benchmarking tool . ここではパラメータをreq/s,転送/s,遅延を用いてフレームワークの性能を測定した.
以下は、このベンチマークに使用されるハードウェア、システム、および条件に関するいくつかの注意事項です.
レーク/秒
転送/秒
潜時
@ tinyHTTP/app ( w/o exts )
24575
3.81 MB
3.37 ms
@ tinyHTTP/app ( ESM )
22820
3.54 MB
4.04 ms
@ tinyHTTP/app ( CJS )
22637年
3.51 MB
4.08 ms
エクスプレス4.17.1
12986年
2 MB
7.11 ms
req/s
秒あたりのリクエスト数です.Latency
ユーザの行動と、そのアプリケーションに対するWebアプリケーションの応答の間の遅延を参照します.上の表から、TinyHTTPはExpressよりも低いレイテンシで1秒あたりの転送を行うことができます.JS V 4
注:ベンチマークは完全に正確ではなく、すべての実行とすべてのマシンで異なるかもしれません.キーは絶対値の代わりに割合を比較することです.
パフォーマンスベンチマークを終了するには、tinyHTTP
req
/res
Expressは~ Expressより1.9倍速い.jsTinyHTTPとExpress。JSインアクション:簡単な例
今すぐTinyHTTPとExpressを見ることができるので、単純な例のアプリを構築する時間です.側のアクション側のJS.
任意のパッケージマネージャを使用してtinyHTTPとExpressをインストールできます.私は使用するnpm デモ.
TinyHTTPをインストールするには、次の手順に従います.
npm i @tinyhttp/app
Expressをインストールするにはjsnpm install express
ハローワールド
エクスプレス.JSとTinyHTTPアプリは非常に同様に構造化されます.あなたが急行を知っているならば.それから、あなたはTinyHTTPも知っています.
tinyHTTP :
import { App } from '@tinyhttp/app'
const app = new App()
const PORT = 3000
app
.get('/', (_, res) => void res.send('<h1>Hello World</h1>'))
.listen(PORT, () => console.log(`Started on http://localhost:${PORT}!`))
エクスプレス.jsconst express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello world');
});
app.listen(3000, () => console.log('listening on port 3000'));
あなたはおそらくrequire
, ESM輸入を使用しました.TinyHTTPを使用するように設計されてNative ESM . Expressとは異なり、tinyHTTPはESMとCommonJSモジュールシステムの両方にコンパイルされます.一方、どうにか、それは表現よりはるかに小さいです.js使えます
import
/export
ノードの構文.それによるJS.ノードESMパッケージを設定するには"type": "module"
にpackage.json
ファイル:{
"type": "module"
}
もう一つのオプションは.mjs
拡張.そのように、あなたはそれを置く必要はありません"type"
フィールドpackage.json
. 詳細については、チェックアウトECMAScript Modules Node.js documentation .一番人気があるので.JSミドルウェアも時代遅れのモジュールを使用します、tinyHTTPはそのような人気のウェアのその書き直し/リメイクのセットを提供します
logger
, session
, など.ルーティング
では、どのようにTinyHTTPとExpressの基本的なルーティングを処理するかを見ましょう.jsエクスプレス.多くのヘルパー機能が含まれています
req
and res
オブジェクト.TinyHTTP完全にエクスプレスを実装します.などのメソッドを使用してres.send
, res.download
, res.redirect
, など.tinyHTTP :
import { App } from '@tinyhttp/app'
import { once } from 'events'
const app = new App()
const PORT = 3000
app.get('/', (req, res) => {
res.send('Sent a GET!')
})
app.post('/', async (req, res) => {
// Nothing complex here, we just listen to 'data' event and return the data as a promise to a `data` variable
const data = await once(req, 'data').then(d => d.toString())
// And then we send it
res.end(`Sent some data: ${data}`)
})
app.listen(PORT, () => console.log(`Started on http://localhost:${PORT}!`))
エクスプレス.jsvar express = require('express');
var app = express();
app.get('/', function(req, res){
res.send("Send a GET!");
});
app.post('/', function(req, res){
res.send("hello'!\n");
});
app.listen(3000);
結論
TinyHTTPは高速で、光であり、バックエンドのアプリケーションのために今日それを使用して起動することができます.The tinyhttp repository 含んでいるexamples , 含むMongoDB and GraphQL 統合.私はすぐに最低限のコードを開始する必要があるTinyHTTPを使用することをお勧めします.
と言った.JSはまだ人気があり、オープンソースのコミュニティサポートと簡単な学習曲線のために主要なプロジェクトや産業で使用され続けます.
200年代のみ✔️ モニタに失敗し、ネットワーク要求を遅くする
ノードベースのWebアプリケーションやウェブサイトの展開は簡単です.あなたのノードのインスタンスがあなたのアプリケーションにリソースを提供し続けていることを確認することは物事がより厳しい取得です.あなたがバックエンドまたはサードパーティサービスへの要求を確実にすることに興味があるならば、成功してください.try LogRocket .
LogRocket ウェブアプリのDVRのように、あなたのサイトで起こる文字通りのすべてを記録してください.問題が起こる理由を推測する代わりに、あなたは根本的な原因を理解するために問題のネットワーク要求に関して集計して、報告することができます.
ページのロード時間などのベースラインのパフォーマンスのタイミング、最初のバイト、低速ネットワークのリクエストにログを記録するためにあなたのアプリケーションをログ出力器、およびまた、RUDX、NGRX、およびVUEXのアクション/状態を記録します.Start monitoring for free .
Reference
この問題について(TinyHTTP対Expressノードの比較.JSフレームワーク), 我々は、より多くの情報をここで見つけました https://dev.to/logrocket/tinyhttp-vs-express-js-comparing-node-js-frameworks-5053テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol