[解決済み] ExpressJSで特定のルートに対して複数のミドルウェアを連結する方法
2023-05-07 04:27:35
質問
検証したいことがあるのですが、Express のドキュメントやオンラインではこれに関する情報を見つけることができません (機能であることは知っていますが)。
私はこれをテストすることができますが、適切なテンプレートがないため、コミュニティから意見を聞きたいと思います。
expressでこのようにルートを定義すると。
app.get('/', function (req, res) {
res.send('GET request to homepage');
});
のように、ミドルウェアを定義して直接読み込むこともできますね。
middleware = function(req, res){
res.send('GET request to homepage');
});
app.get('/', middleware)
しかし、これらのルートの少なくとも1つをチェーンして、このように認証などの余分なミドルウェアを実行することもできますね。
app.get('/', middleware, function (req, res) {
res.send('GET request to homepage');
});
これらは無限にチェーン可能ですか?もし望むなら、与えられたルートに10個のミドルウェア関数を貼り付けることができるでしょうか?app.getが受け取ることができるパラメータを見たいのですが、前述のようにdocsでそれを見つけることができません。
どのように解決するのですか?
無限に"とは書いていませんが、複数のミドルウェア関数( "コールバック" と呼ばれる) ここで :
<ブロッククオートrouter.METHOD(path, [コールバック, ...] コールバック)
...
複数のコールバックを提供することができます ただし、これらのコールバックは残りのルートコールバックを迂回するために next('route') を呼び出すことができます。このメカニズムを使用して、ルートで事前条件を実行し、マッチしたルートを続行する理由がないときに後続のルートに制御を渡すことができます。
見てわかるように、ミドルウェア関数と一般的にリクエストを処理する関数(通常はリストに追加された最後の関数)の間には区別がありません。
10個あっても問題ないはずです(本当に必要なら)。
関連
-
[解決済み] リソースの読み込みに失敗しました: net::ERR_CONNECTION_REFUSED : Nodejs
-
[解決済み] 再インストールを繰り返しても、npm run でモジュール 'sass' が見つからない。
-
[解決済み】Passport.js - エラー: ユーザーのセッションへのシリアライズに失敗しました。
-
[解決済み】NPMインストールエラー:解析中の予期せぬJSON入力の終了 '...nt-webpack-plugin": "0'' 付近。
-
[解決済み】E11000重複キーエラー mongodb mongooseのインデックス
-
[解決済み】AWS lambda function エラー - モジュール 'index' をインポートできません。エラー
-
[解決済み] AWS lambda function error - Unable to import module 'index': エラー
-
[解決済み] Node.jsで「btoaが定義されていない」エラーが発生する
-
[解決済み] のエラーが発生しました。これはおそらくnpmの問題ではありません。上に追加のログ出力があると思われます
-
[解決済み] Express.js req.bodyが未定義です。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Nodejs: Errorを解決する方法。ENOENT: そのようなファイルまたはディレクトリがありません
-
[解決済み】「安全なTLS接続が確立される前にクライアントのネットワークソケットが切断されました」(ノード10
-
[解決済み】AWS lambda function エラー - モジュール 'index' をインポートできません。エラー
-
[解決済み] create-react-app、インストールエラー("コマンドが見つからない")。
-
[解決済み] Heroku "状態が起動から停止に変更されました SIGTERMで全プロセスを停止"
-
[解決済み] ExpressJS : res.redirect()が期待通りに動作しない?
-
[解決済み] NodeJsのSequelizeでautoIncrementはどのように動作するのですか?
-
[解決済み] node.jsのセットアップウィザードが途中で終了してしまう
-
[解決済み] NPMが同じエラーで固まる EISDIR: ディレクトリに対する不正な操作、エラーで読み込み (ネイティブ)
-
[解決済み] Express.js req.bodyが未定義です。