NodeJSexpress
モジュールのドキュメントでは、コード例にapp.use(...)
.
関数は何で、use
どこで定義されていますか?
アプリケーション オブジェクトは、Express サーバーの作成時にインスタンス化されます。でカスタマイズできるミドルウェアスタックがありますapp.configure()
(これは現在、バージョン 4.x で廃止されています)。
ミドルウェアをセットアップするには、追加するすべてのミドルウェア レイヤーを呼び出すことがapp.use(<specific_middleware_layer_here>)
できます (すべてのパスに対してジェネリックにすることも、サーバーが処理する特定のパスでのみトリガーすることもできます)、Expressミドルウェア スタックに追加します。ミドルウェア層は、 の複数回の呼び出しで 1 つずつ追加することも、1 回の呼び出しuse
で連続して一度に追加することもできます。詳細については、use
ドキュメントを参照してください。
Express ミドルウェアの概念を理解するための例として、アプリ オブジェクトを JSON としてコンソールに記録すると、アプリ ミドルウェア スタック (app.stack) は次のようになります。
stack:
[ { route: '', handle: [Function] },
{ route: '', handle: [Function: static] },
{ route: '', handle: [Function: bodyParser] },
{ route: '', handle: [Function: cookieParser] },
{ route: '', handle: [Function: session] },
{ route: '', handle: [Function: methodOverride] },
{ route: '', handle: [Function] },
{ route: '', handle: [Function] } ]
推測できるかもしれませんが、私はapp.use(express.bodyParser())
、app.use(express.cookieParser())
などを呼び出して、これらの高速ミドルウェア「レイヤー」をミドルウェア スタックに追加しました。ルートが空白であることに注意してください。つまり、これらのミドルウェア レイヤーを追加したときに、それらが任意のルートでトリガーされるように指定したことを意味します。上記のスタック出力のミドルウェア レイヤー オブジェクト/user/:id
のフィールドに文字列として反映されるパスでのみトリガーされるカスタム ミドルウェア レイヤーを追加した場合。route
各レイヤーは基本的に、ミドルウェアを介してフローに何かを具体的に処理する関数を追加しています。
たとえば、 を追加することbodyParser
で、サーバーがエクスプレス ミドルウェアを介して着信要求を確実に処理できるようになります。したがって、受信リクエストの本文の解析は、受信リクエストを処理するときにミドルウェアが実行する手順の一部です。これはすべて、 を呼び出したためですapp.use(bodyParser)
。
use
Express HTTP サーバー オブジェクトのルートで使用されるミドルウェアを構成するメソッドです。メソッドは、Express のベースとなるConnectの一部として定義されます。
Updateバージョン 4.x 以降、Express はConnectに依存しなくなりました。
以前 Express に含まれていたミドルウェア機能は、個別のモジュールになりました。ミドルウェア機能一覧をご覧ください。
app.use()
ミドルウェアを登録できるメソッドです。
ミドルウェア メソッドは Java のインターセプターのようなもので、このメソッドは常にすべてのリクエストに対して実行されます。
ミドルウェアの目的と使用:-
app.use はアプリケーションレベルのミドルウェアです
app.use() 関数と app.METHOD() 関数を使用して、アプリケーション レベルのミドルウェアをアプリ オブジェクトのインスタンスにバインドします。ここで、METHOD は、ミドルウェア関数が処理する要求の HTTP メソッド (GET、PUT、またはなど) です。 POST) を小文字にします。
を使用してすべてのリクエストを確認できます。たとえば、トークン/アクセス トークンを確認したい場合は、 app.use を使用してリクエスト内のトークンを確認することでミドルウェアを作成する必要があります。
この例は、マウント パスのないミドルウェア関数を示しています。この関数は、アプリがリクエストを受け取るたびに実行されます。
var app = express()
app.use(function (req, res, next) {
console.log('Time:', Date.now())
next()
})
app.use
は Express(nodejs ミドルウェア フレームワーク ) によって作成され
ます app.use は、初期化プロセスで特定のクエリを実行するために使用されます
server.js(node)
var app = require('express'); したがって、基本的には、サーバーが起動する
たびに呼び出される app.use 関数
app.use(bodyparser.json())
簡単に言えばapp.use()
、別の関数 (コールバック) をパラメーターとして受け取り、高速アプリ/サーバーにリクエストが送信されるたびに実行される関数です。
app.use 内で渡される関数はミドルウェアとも呼ばれます。ミドルウェアは、高速アプリに存在する関数の単なる派手な名前であり、3 つのパラメーター request、response、next を持ちます。ミドルウェアについて詳しく読むことができます。
ミドルウェアは、リクエストとレスポンスのサイクルの間に呼び出されます。ミドルウェアをすべてのルートに適用するapp.use()
場合は、検証、エラーチェックなどを使用または実行できます。