コピー2019.03.29スポンサーリンクExpressに関する情報を探していると、ミドルウェア関数の引数にnextという記述をよく見かけます。具体的には以下のようのな記述です。});調べてみると、次のミドルウェアへのコールバック引数ということですが、いまいちピンと来ないので色々試してみました。Return両方構成するまとめnext()を利用しないとどうなるかやってみたルートに対するgetを複数定義した場合ルートに対するget要求を複数定義してみました。それぞれにreturnを持たせ、ログも出力するようにしています。Firstクライアントからルートパスに対するGET要求に、上の方に記載したミドルウェアのみ動作しました。ここで要求に対してreturnしているのでSecondの方まで処理は届きません。Returnを外してみるそれぞれのミドルウェア関数のReturn部分をコメントアウトしてみました。First結果、コンソールにFirstと出るものの、ブラウザ上はLocalhostからの応答を待つ状態となり、最終的にタイムアウトとなります。要求に対して何も返していないので当然ですね。next()で次のミドルウェア関数を呼び出すではコールバック引数のnextを利用して次のミドルウェア関数を呼び出すようにしてみます。ミドルウェア関数の引数に「next」を追加します。{・・・そしてconsole.log('First');のあとにnext();を追加してみます。Returnが返ってきました。SecondSecondが記録されていますね。next();の部分で次のミドルウェア関数が呼び出されたことが分かるかと思います。Returnが返ってきます。Retrunを両方有効にしてみます。Returnが返ってきています。C:\express-next\node_modules\express\lib\router\index.js:281:22エラーが出ました。端的に言うと一度レスポンスを返しているのに、再度レスポンスを返そうとしていますよ、という内容です。Return');という流れになるために発生します。まとめExpressはリクエストにマッチするミドルウェア関数を上から順に実行します。Nextを利用することで、特定のリクエストに対して次々にミドルウェア関数を呼び出すことが可能となります。特定条件時のみ次のミドルウェア関数を実行する、など様々な用途があるかと思います。使いこなせるようになりたいですね。Worldを表示させるまでの手順を紹介します。コメントをキャンセルメールアドレスが公開されることはありません。*サイトスポンサーリンク管理人みずだこみずだこです。やっていきますのでよろしくおねがいします。たこログ.メニューホームプライバシーポリシーお問い合わせホーム検索トップサイドバースポンサーリンク管理人みずだこみずだこです。やっていきますのでよろしくおねがいします。World!2019.02.132019.03.31タイトルとURLをコピーしました。