このレッスンでは、私たちが中断した箇所を選んでルーティングについて話し続け、3つの主な目的を表現します。
最初のものは、splattまたはStar Route matcherと呼ばれるものを表示することです。
そして、私はあなたにルートパラメータを含むルートを書くことを望みます。
そこで我々は、どのようなルートパラメータがあるかについて、どのようにしてそれについて話します。
そして、最後にラートの順序について簡単に議論したいと思います。
始めましょう。
私が以前使っていたものと全く同じ最初のエクスプレスアプリを使っています。
それはただの行為です。
はい。
ノードマンドレルディレクトリにExpressがインストールされているAPTAはいはい私たちはこんにちは、ありがとうございました。そしてスラッシュの犬のルートです。このレッスンではこれからも追加していきます。
私が打つ目標の最初のものは、私たちの前にsplattまたはStar Routeのマッチャーを導入することです。
私はちょうどサーバを起動して、ノードを終了します。
それがOKを開始することを確認して、私は実際にアプリを訪れているタブを開くつもりです、そして、私はあなたにこのメッセージを最初に示したいと思います。
これは、サーバーがまったく実行されていないときにアプリケーションの1つにアクセスしようとしたが、サーバーが現在実行中である場合に発生します。
だから私が今リフレッシュするなら私はそこに私のハイを得るか、または私がダグをスラッシュに行くなら私は今私を得る。
しかし、私が見せたいのは、私がスラッシュ犬のような存在しないルートに行くと私は入力をヒットし、私はこれを早めに示した、スラッシュ犬を得ることができないと、それは私が行っていない限り、私たちが定義した3つのうちの1つ。
スラッシュドッグとスラッシュ。
だから、私たちがキャッチオールの何らかの種類のメッセージを持っていて、犬と経路以外のすべてのルートに応答するようなメッセージがあれば、スターを使うことができます。
それでこのように見えるのは、うまくいくでしょう。私たちはただ星を得て、それ以外はまったく同じように進みます。
そして、ここでは赤い点をするだけで、あなたはそのような星であり、保存します。
このコードがトリガーされるので、ここでこの行が実行されます。
私たちのアプリは、私たちが既に定義した3つのこと以外に知っている人にもリクエストを得るたびに、サーバーを再起動する必要があることを示します。
OKはそれを再開しました。
変更する必要はありません。
しかし、今私がいくつかのランダムなチッパーのルートに行くと私はあなたが星であることを得る入力をヒット。
しかし私の他のルートは変わりません。
もし私がまだスラッシュに行くと、私はまだ動作する犬をスラッシュに行く場合は動作しますが、私はジバリッシュに行く場合、私はあなたがスターです。
これは、何らかのエラーメッセージやウェブページの領域を使用して、ユーザーがいつでも定義されていないルートにアクセスしたり、何かを表示することを期待していないルートにアクセスしたりする場合に便利ですメッセージ、または「ページが見つかりません」と表示されているHDMIテンプレートを選択します。
エディタに戻りましょう。私はこれをコピーしたり、カットしたり、他のルートの上に移動して保存したりします。何も変更しないでください。
私のスタールートがどこに来るのかを別にすれば、キャッチオールが先に来てから、サーバーControl-Cを再起動してから上向き矢印を再起動します。
今私は戻ってページをリフレッシュするつもりです。これはまだ変わっていないので変わらないはずです。
だから、それはまだすべてのルートをキャッチし、他のルートのいずれかを打つことを打つ。
しかし、私がルートページに行こうとすると、私はまだあなたが星になってしまいます。私はあなたの星を手に入れようとすると、私はあなたの星を手に入れます。
だから私はこの3番目の目的を達成しました。私はルートの順序について議論したいと思っていました。
だからこの場合、もし私が最初にそれを置くならば、私はこのキャッチをすべて全てにマッチするスターに入れれば、それ以外のものはこれまでにはマッチしないでしょう。
重要な概念は、特定の要求に一致する最初のルートが実行される唯一のルートであることです。
したがって、ある要求に対しては、このコードを実行することはありません。
そして、これらのコールバックの1つが実行されている場合は、このコードがトリガーされていれば完了です。
その要求が処理され、これらの他のルートに移動することはありません。
しかし、これを私のコードとし、誰かが犬を斬るように要求しているところに戻してみましょう。
最初に起こることは、このルートと一致するかどうかをチェックすることです。
それはスラッシュを求めるリクエストでしたか？
答えはいいえだ。
それで、それはそれをチェックします。
それは購入のリクエストを受けたか？
いいえ。
それで、それはそれをチェックします。
それは、犬を刈るリクエストを受けたか？
答えは「はい」です。
だから、このコードを実行し、それが完了しました。
それは上に移動せず、最後にこれをチェックしません。
私が定義した他のルートのどれかを上書きするので、もちろん、最初にこれを置くのは問題があります。
そして、私はいつも常に星に反応します。これは偉大な動機づけのWebサイトを作るのですが、実際のWebアプリケーションで探している行動ではありません。
私が話したい最後の目標は、間違いなく最も重要なものです。ルートパラメータを導入するのに役立つルートパラメータと呼ばれるものです。
私はRedditドットコムを使用して、読んだことに慣れていないあなたのためのルートのいくつかをお見せしましょう。
私が何を言おうとしているのか聞いてはいけません。
あなたの人生で生産性を失うのは、リンクや画像、ビデオ、テキストなど、さまざまな投稿を投稿できるということです。
2つの異なるサブエディタがあり、それぞれに1つのカテゴリを持つ数千から数千の異なるサブセットがあります。
だから今私はゲームのもの、音楽のもの、面白いもの、ニュースや映画に行くことができるサッカーを見ています。
それぞれのトピックにはそのトピックに関連するコンテンツがあります。
だから、この場合私はサッカーのサブにそれを読んで、Redditドットコムスラッシュがスラッシュサッカーであることに気づいた。
だから、サーバーにRedditドットコムスラッシュスラッシュSockerを頼んだとき、それはルートを解析し、私たちがサッカーポストを探していることを認識しています。データベースに行くと、すべてのサッカーポストが取得され、レスポンスで私に送信されます。
しかし、私が以前に言及したように、何千もの異なる科目があります。私は、Redditはすべての読書のためのルートがあるところでこのように設定されていないことを保証することができます。
それは私たちのスラッシュサッカーをスラッシュを得ることが適切ではないと私はちょうどそれを短縮し、その後、音楽のための別のものと映画のためのもう一つ。
1万倍以上
それはどのように赤い作品ではありません。
このコードはまったく乾いていません。
乾いたままにしないでください。
実際にはそれは非常に濡れているので、2回すべてを書きます。
それは10000回すべてを書き込むようなものですが。
したがって、単一のサブセットごとに別々のルートを定義するのではなく、パターンを定義することができます。
そして、これは赤色です。
彼らはスラッシュのようなパターンを持っています。
しかし、私たちがちょうどこれをスラッシュのままにしておけば、私たちのスラッシュSubletteに名前をつけて、まったく同じものにマッチさせると、名前のところにパンのスライスが現れます。
私が前にあなたがそれを読むために戻ってきたときに私はそれを回避し、いずれかの投稿をクリックしてあなたを示す。
だからこのポストをここでクリックしてルートを見てみよう。
だから来る準備ができている。
スラッシュスラッシュスラッシュコメントスラッシュこの狂った文字列をそれはIEDスラッシュのタイトルまたはタイトルの一部のタイトルです。
このルートに行くと、この投稿に対応するすべてのコメントがそのタイトルの投稿に表示されます。
もちろん、Redditには何百万と何百万もの異なる投稿があり、それぞれに独自のルートが定義されているわけではありません。
だから、このようなサーバコードの内部には、このようなルートはありません。
特に、投稿はすべてユーザーによって作成され、誰がコードを書いても誰もそれらの異なる投稿すべてを予期することができないためです。
そうではなく、私たちがスラッシュ・サブに名前を読み込ませるようなパターンが必要です。
この場合、サッカースラッシュコメントスラッシュとIDスラッシュタイトルとちょうど上のいずれかのようにSubletteそれは名前。
これは、文字通り、文字のための単語文字をタイプすると、そのようなサブセットであることになります。それは、名前スラッシュのコメントスラッシュIDスラッシュのタイトルです。
それをパターンにするために、私たちはルートパラメータまたはルート変数と呼ばれるものを利用し、他のフレームワークでは人々もそれらをパス変数と呼んでいます。
彼らは非常に簡単に実装することができます。
私がパターンを定義して、私たちがスラッシュを何か他のものにスラッシュするリクエストを聞いた場合には、後でそれを指定してください。
あなたがしなければならないことは、そこにコロンを置くことです。実際には名前の文字サブセットの文字には一致しませんが、スラッシュのためのrelisteningがその後の単語をスラッシュするパターンにしてください。
だから私は今これをコメントして、私たちの要求と応答でこれを終わらせて、それを開いてみましょう。
ようこそ、件名に保存し、保存してサーバーを再起動します。
今私がこのメッセージを見たいなら、私はこのパターンに合ったルートに行く必要があります。
だから戻ってリフレッシュしてみましょう。スライドすると同じことが起こります。
そのページに行くと、同じことが起こります。
しかし今私達が私達のスラッシュ子犬をスラッシュに行く場合私は今Subd Redditへようこそメッセージを得る。
だからスラッシュ子犬はこのパターンに従い、スラッシュサッカーや私が思いつくことができる他のサブセットをスラッシュします。
しかし、これがうまくいかないようなことに注意することは重要です。
これは別のパターンなので、もはやうまく動かないスラッシュスラッシュハローをスラッシュしてください。
だから、後にスラッシュやスラッシュを言うワイルドカードのようなものではありません。
それが本当に意味するのは、スラッシュで来るものにマッチするもの、それに続くものをスラッシュするものです。
だからスラッシュではなく、名前をスラッシュ何か他のスラッシュスラッシュスラッシュスラッシュ子犬。
私はスラッシュがたくさんあると言っているし、それは本当に迷惑になってきています。
だからここで下に移りましょう。私はこれをどのように変換することができるかをお見せしましょう。
それはまったく同じように見えます。
私たちは変数になりたいものの前にコロンを置き、ユーザーやアプリケーションが変更できるようにするものを置きます。
だから、コメントは常にすべてのreddit投稿にコメントする必要があります。
それは常にサブの名前です。サッカースラッシュのコメントのように、IDはスラッシュのタイトルをスラッシュにするので、常にそこにコメントしています。
これを完成させましょう。機能リクエストレスポンスは、これにマッチするルートが必要です。
私はクラウド9からこのプリントが見えるとは思っていないと言って、本当にうれしいところです。
それは私が方法を呼んでいないからです。
それでは、赤い点を送信してみましょう。ちょうどそのようなコメントページにようこそ。このルートと一致するようにサーバーを保存して再起動します。
私はスラッシュサブレットをスラッシュに移動する必要がありますそれはスラッシュのコメントをスラッシュID何も同様にできるタイトルをスラッシュ。
それでは、今やってみましょう。
私たちはスラッシュサッカースラッシュのコメントをすべてのIDをスラッシュにスラッシュに行くでしょう。
私たちは1つ2つ3つを行いますが、それは数字である必要はありません。
それは言葉かもしれない。
それは全く問題ではありません。
そして私の最初のサッカーの試合のようなタイトルをスラッシュして、Enterを押すとコメントページへようこそ。
もちろん、これを変更してランダムな文字列にすることもできます。
そして、ランダムな文字列または数字だけの別のタイトル。
そして、私はまだそのパターンに合っています。
だから、何かが文字や言葉であること、あるいはアンダースコアがあること、あるいはそれが気にしない少なくとも10文字であるという事実をチェックしていない。
それを行う方法があります。
しかし、これが気にするのは、最後にスラッシュで区切られ、最後にスラッシュで区切られたテキストのまとまりのパターンです。最も重要なのは、ルートハンドラの代わりにこのデータにアクセスする方法です。
だから私がここにメッセージを送りたければ、あなたがサッカーを歓迎することを知っていたのですか？
しかし私はそれも変えたい。
子犬へようこそ。
私がスラッシュの子犬に行くとき、私はそれを読んだ。
私はそれにアクセスする方法が必要です。
そして、あなたはそれが彼にとって、そして表現されたサブレットの価値が、この要求オブジェクトの代わりにそれを行うためのすてきで簡単な方法を与えてくれることを知っています。
これまでのところ、レスポンス・レジデントとしか作業していませんでしたが、リクエスト・オブジェクトには着信リクエストに関するすべての情報が含まれています。
簡単なことをやりましょう。
ログの要求があり、実際にはそれほど多くの情報を見ることはできません。そこには小さな部分しか印刷されないためです。
しかし、サーバーを再起動してこのルートにヒットしましょう。
だから私たちのスラッシュは、サッカーにその名前を提出する。
そして、ここであなたはそれが実際にすべてのものを印刷するのを見ることができます。
そして、その要求から来る多くの情報があります。
それはすべてここに印刷されている。
そして、私が探しているのは、リクエストパラメータと呼ばれるものです。
これは、すべてのルートパラメータとそれに対応する値を含むオブジェクトです。
だからこの場合、私はスラッシュサッカーをスラッシュに行ったので、サブリジット名はSockerと同じです。
だから私たちがやることは、そのログがハラハムを止めることを全部ではなく停止させ、サーバーを保存してからリフレッシュまたは再起動させることです。
そして、今私がスラッシュのこんにちはをスラッシュに行く場合は、それは内張りの名前はこんにちはと言うでしょう。
彼らは子犬のために同じことをすることができます。
そしてそこに行く。
私がここでやっているような複数のパスパラメータを持っているとき、同じことを私に教えてください。
だから私はちょうどそこに置くよ。
保存し直してからサーバーを再起動して、スラッシュ子犬のスラッシュのコメントにIDスラッシュのタイトルをスラッシュしてこのルートをトリガーします。
私のコアはかわいいと入力し、私たちは取得します。
Commonsページへようこそ。
ターミナルを見ると、3つの異なるルートパラメータが3つの異なるハムを持つことがわかります。
サブセットIDは1 2 3 4とタイトルは私のコジが可愛いです。
私たちが実際にそれを作ることを可能にするサブセットへようこそでこれを包みます。
広がった子犬へようこそ。
広がったものにようこそ。
それをもう少し楽しくするために、すべてが大文字であることを確認しましょう。
だから私たちがやることは、変数を遠くに作ることです。そして、それをsubと呼ぶことにします。ハムを要求します。sub redit
nameは、ここで呼び出されたものと正確に一致しなければなりません。
このリクエストの中にあることを忘れないでください。
Haramsは、それが行う部分集合を歓迎して応答するのではなく、むしろオブジェクトです。
スペースへようこそ。
プラス私はそれを読んだプラス私はそれを読んだので、子犬に歓迎されます。
それを読むと大文字ではありません。
それを大文字にするには大文字にすることができます。ここで行うこともできますし、Subletteでこれを行うこともできます。セミコロンを取り除いて、サーバを保存して再起動します。
戻ってそのルートをもう一度トリガーしましょう。
だから、これはそれを引き起こさないでしょう。
これは、複数のパラメータを持つルータ用です。
私たちはただの子犬が欲しいだけだ。
子犬へようこそ。
準備ができました。
さて、私がスラッシュした子犬やスラッシュドッグを飼育したり、猫を育てたりすると、ダイナミックなウェブページができました。
さて、これを本当に素早く包み込み、経路定義の代わりにスターを使うときに戻ってみましょう。
それは、ルートの問題を定義する順序と、それに伴って来るものとまったく一致します。
したがって、スタールートマスターを上に置くと、その下に他のルートはありません。
しかし、それを通常どおりに下に置くと、すべての種類のelse文としてキャッチとして動作します。
他の経路が一致しない場合は、星と一致する。
最後に、ルートのパターンを定義するために使用できるルートパラメータについて説明しました。このパターンは、文字または単語の単語に一致する必要はありません。
同じパターンで一致させるだけです。
だから私がスラッシュを持つことができるこのようなものは、その名前を付けたサブセットをスラッシュしています。
それだけです
次のビデオでは別のエクササイズを行い、今度は自分のExpressアプリケーションを一から書いていき、ラップハムをいくつかのラップで使用します