[解決済み】NodeJS / Express: "app.use "とは何ですか?
質問
で
NodeJSのドキュメント
express
モジュール
の場合、サンプルコードでは
app.use(...)
.
とは何ですか?
use
という関数がありますが、これはどこで定義されているのですか?
どのように解決するのですか?
アプリオブジェクトは、Expressサーバーの作成時にインスタンス化されます。これには
ミドルウェア
スタック
でカスタマイズできる
app.configure()
(これはバージョン4.xで非推奨となりました)
.
ミドルウェアをセットアップするために
app.use(<specific_middleware_layer_here>)
は、追加したいミドルウェアレイヤーごとに(すべてのパスに汎用的に適用することも、サーバが処理する特定のパスのみをトリガーとすることも可能)、あなたの
エクスプレス
ミドルウェアスタック ミドルウェアレイヤーは、以下のように複数回呼び出すことで、1つずつ追加することができます。
use
あるいは、1回の呼び出しで一度にすべて直列にすることも可能です。
参照
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
,
を使うと、express ミドルウェアを経由して入ってくるリクエストを確実に処理することができます。
. だから
これで、入ってくるリクエストの本文を解析することが、 入ってくるリクエストを処理するときにミドルウェアがとる処理の一部になりました。
-- すべて、あなたが
app.use(bodyParser)
.
関連
-
[解決済み] bodyParser は非推奨です express 4
-
[解決済み] npm installの-saveオプションは何ですか?
-
[解決済み] forEachループでasync/awaitを使用する
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsを完全にアンインストールして、最初から再インストールする方法 (Mac OS X)
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み] Node.jsのnpmモジュールをアンインストールするにはどうすればよいですか?
-
[解決済み] エラーが発生しました。クライアントに送信された後にヘッダーを設定できない
-
[解決済み】Expressで完全なURLを取得する方法は?
-
[解決済み】express.jsのapp.useとapp.getの違いについて
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Node.jsのエラーECONNRESETをデバッグするにはどうすればよいですか?
-
[解決済み】Passport.js - エラー: ユーザーのセッションへのシリアライズに失敗しました。
-
[解決済み】E11000重複キーエラー mongodb mongooseのインデックス
-
[解決済み] AWS s3 api error: specified bucket does not exist.
-
[解決済み] http-server コマンドが見つかりません。
-
[解決済み] エラーです。Expressでビューの検索に失敗しました
-
[解決済み] ノードマータ予期せぬフィールド
-
[解決済み] node.js - リクエスト - "emitter.setMaxListeners() "はどのように?
-
[解決済み】express.jsのapp.useとapp.getの違いについて
-
[解決済み】Expressjsのmiddlewareとapp.useの実際の意味は何ですか?