Expressミドルウェアとは何ですか? Nodeでどうやって使うの?
Express ミドルウェアとは何ですか? Node でそれを使用するにはどうすればよいですか? Expressミドルウェアの簡単な使い方については以下の記事で紹介していますので、ぜひ参考にしてください。
#1. Express ミドルウェアとは
ミドルウェアとは、具体的にはビジネス プロセスの中間処理リンクを指します。2. Express ミドルウェアの呼び出しプロセス
Express サーバーにリクエストが到達すると、リクエストを準備するために複数のミドルウェアを連続的に呼び出すことができます。3. ミドルウェア形式
本質的には関数処理関数です注: ミドルウェア関数の仮パラメータリスト、次のパラメータを含める必要があります。ルーティング処理関数には req と res のみが含まれており、
// next参数必须在最后一个传入 const mw = (req, res, next) => { ... // next()必须在最后调用 next() }
4 next() 関数の役割
next 関数が複数ミドルウェアの連続呼び出しを実現する鍵となりますこれは、フロー関係を次のミドルウェアまたはルートに転送することを意味します。5. グローバルに効果的なミドルウェア
クライアントによって開始されたリクエストは、サーバーに到達した後に、グローバルに効果的なミドルウェアと呼ばれるミドルウェアをトリガーします。 server.use (ミドルウェア関数) を呼び出すことで、グローバルに有効なミドルウェアを定義できます。サンプルコードは次のとおりです:const mw = (req, res, next) => { next() } const mw1 = (req, res, next) => { next() } // 全局生效的中间件,中间件调用顺序以传入顺序为准 server.use(mw,mw1)
6. ローカルに有効なミドルウェア
Partialミドルウェアは指定されたルーティング パスでのみ有効になりますconst mw = (req, res, next) => { next() } const mw1 = (req, res, next) => { next() } // 局部生效的中间件 server.get('/',mw,(req,res)=>{ res.send('路径:/') }) // 定义多个局部生效的中间件 // 1、直接逗号分隔 server.get('/',mw,mw1,(req,res)=>{ res.send('路径:/') }) // 2、或者使用数组包含 server.get('/',[mw,mw1],(req,res)=>{ res.send('路径:/') })
7. ミドルウェアの役割
複数のミドルウェアは同じ要求と要求を共有します。この機能に基づいて、下流のミドルウェアまたはルーティングで使用できるように、上流のミドルウェアの req オブジェクトまたは res オブジェクトにカスタム属性またはメソッドを均一に追加できます。const mw = (req, res, next) => { // 添加属性 req.startTime=new Date() next() }
8. Express ミドルウェアの 5 つの注意点
- ルーティング前に必ずミドルウェアを登録してください #複数のミドルウェアを連続して呼び出すことで、クライアントから送信されたリクエストを処理できます。
- ミドルウェアの業務コードを実行した後は、必ず next() 関数を呼び出してください
- コードロジックの混乱を避けるため、next() 関数を呼び出した後に追加のコードを記述しないでください。
- 複数のミドルウェアを連続して呼び出す場合は、複数のミドルウェアを呼び出す必要があります。ミドルウェア間での req オブジェクトと res オブジェクトの共有
- #9. Express ミドルウェアの分類
#アプリケーション レベルのミドルウェア
#ルーティング レベルのミドルウェア
- ##エラー レベルのミドルウェア ##Express 組み込みミドルウェア
- 詳細な紹介:
- アプリケーション レベルのミドルウェア
- エラー レベルのミドルウェアエラーレベルミドルウェアの役割: プロジェクト全体で発生する異常なエラーを捕捉し、プロジェクトの異常クラッシュを防ぐために特に使用されます。
- 形式: エラーレベルミドルウェアの関数処理関数には4つの仮引数が必要で、仮引数の順序は前から(err、req、res、next)となります。 #注: エラー レベルのミドルウェアはすべてのルートの後に登録する必要があります!
const router = require('./router/router') // 路由级别的中间件 router.use((req,res,next)=>{ next() })
ログイン後にコピー Express 組み込みミドルウェア
Since Express 4.16.0 バージョンの Express には、一般的に使用される 3 つのミドルウェアが組み込まれており、Express プロジェクトの開発効率とエクスペリエンスが大幅に向上します。
express.static fast hosting static HTML ファイル、画像、CSS スタイルなどのリソース (互換性なし)
express.json はリクエスト本文データを JSON 形式で解析します (互換性あり、でのみ利用可能)バージョン 4.16.0)- #express.urlencoded は、URL エンコード形式でリクエスト本文データを解析します (互換性があり、バージョン 4.16.0 でのみ利用可能)
- サードパーティ ミドルウェア
- は Express に正式に組み込まれていませんが、サードパーティ ミドルウェアと呼ばれるサードパーティによって開発されています。プロジェクトでは、サードパーティのミドルウェアをオンデマンドでダウンロードして構成できるため、プロジェクトの開発効率が向上します。
例:
express@4.16.0
より前のバージョンでは、サードパーティのミドルウェア body-parser - がリクエスト本文データの解析によく使用されていました。使用手順は次のとおりです。 実行npm install body-parser
- ミドルウェアのインストール
requireを使用してミドルウェアをインポートします。
- server.use()を呼び出す
- ミドルウェアを登録して使用する
注: Express の組み込みのexpress.urlencoded ミドルウェアは、サードパーティのミドルウェアのボディパーサーに基づいてさらにカプセル化されています。
// 人为制造错误 server.get('/err', (req, res) => { throw new Error('人为抛出错误!!!') res.send('err Page') }) // 定义错误级别的中间件 server.use((err, req, res, next) => { console.log('发生了错误:' + err.message); res.send('Error:'+err.message) next() })
ログイン後にコピーノード関連の知識の詳細については、nodejs チュートリアル を参照してください。
以上がExpressミドルウェアとは何ですか? Nodeでどうやって使うの?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
// 全局生效的中间件(应用级别的中间件) server.use(mw,mw1) // 局部生效的中间件(应用级别的中间件) server.get('/',mw,mw1,(req,res)=>{ res.send(`请求进入服务器的时间:${req.startTime}`) })

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









nvm でノードを削除する方法: 1. 「nvm-setup.zip」をダウンロードして C ドライブにインストールします; 2. 「nvm -v」コマンドで環境変数を構成し、バージョン番号を確認します; 3. 「nvm」を使用しますinstall" コマンド ノードのインストール; 4. "nvm uninstall" コマンドでインストールしたノードを削除します。

ファイルのアップロードをどのように処理するか?次の記事では、Express を使用してノード プロジェクトでファイルのアップロードを処理する方法を紹介します。

この期間中、私は Tencent ドキュメントのすべてのカテゴリに共通する HTML 動的サービスを開発していましたが、さまざまなカテゴリへのアクセスの生成と展開を容易にし、クラウド移行のトレンドに従うために、Docker を使用して修正することを検討しました。サービス内容や製品バージョンを一元管理します。この記事では、私が Docker を提供するプロセスで蓄積した最適化の経験を参考として共有します。

この記事では、Node のプロセス管理ツール「pm2」について説明し、pm2 が必要な理由、pm2 のインストール方法と使用方法について説明します。皆様のお役に立てれば幸いです。

ピン張りのノードの詳細な説明とインストールガイドこの記事では、ピネットワークのエコシステムを詳細に紹介します - PIノードは、ピン系生態系における重要な役割であり、設置と構成の完全な手順を提供します。 Pinetworkブロックチェーンテストネットワークの発売後、PIノードは多くの先駆者の重要な部分になり、テストに積極的に参加し、今後のメインネットワークリリースの準備をしています。まだピン張りのものがわからない場合は、ピコインとは何かを参照してください。リストの価格はいくらですか? PIの使用、マイニング、セキュリティ分析。パインワークとは何ですか?ピン競技プロジェクトは2019年に開始され、独占的な暗号通貨PIコインを所有しています。このプロジェクトは、誰もが参加できるものを作成することを目指しています

Nodejs実行可能ファイルをpkgでパッケージ化するにはどうすればよいですか?次の記事では、pkg を使用して Node プロジェクトを実行可能ファイルにパッケージ化する方法を紹介します。

「node-gyp.js」が「Node.js」のバージョンと一致しないため、npm node gyp が失敗します。解決策は次のとおりです: 1. 「npm cache clean -f」を使用してノード キャッシュをクリアします; 2. 「npm install -」を使用します。 g n" n モジュールをインストールします。 3. 「n v12.21.0」コマンドを使用して、「node v12.21.0」バージョンをインストールします。

認証は、Web アプリケーションの最も重要な部分の 1 つです。このチュートリアルでは、トークンベースの認証システムと、それが従来のログイン システムとどのように異なるかについて説明します。このチュートリアルを終えると、Angular と Node.js で書かれた完全に動作するデモが表示されます。従来の認証システム トークンベースの認証システムに進む前に、従来の認証システムを見てみましょう。ユーザーはログイン フォームにユーザー名とパスワードを入力し、[ログイン] をクリックします。リクエストを行った後、データベースにクエリを実行してバックエンドでユーザーを認証します。リクエストが有効な場合、データベースから取得したユーザー情報を使用してセッションが作成され、セッション情報が応答ヘッダーで返され、セッション ID がブラウザに保存されます。対象となるアプリケーションへのアクセスを提供します。
