よろしくお願いします。
私たちがモンゴーについて学んだことを取る時です。
Bとmongooseについて私たちはキャンプアプリケーションに追加して、データの永続性を追加することができます。
したがって、3つの主なステップは、マングースをインストールして設定することです。そして、モデルをスキームとキャンプグラウンドのモデルに設定する必要があります。
そして私たちのルートの代わりにキャンプグラウンドモデルを使う必要があります。
もう少し先に進む前に、私はキャンプのV-2を使用しているので、V-1の別のコピーを作ったので、次の少数のビデオのためにこれで作業します。
それは、私たちがより大きな変化を起こすことになるからです。
いくつかのファイルは動き回りますが、私はあなたがV-1コードを見ることができるようにしたいと思います。
ですから、V-2と私は、v3ではなく作業を開始するときに必ずお知らせします。
だから私たちが今持っているものを見てみましょう。
はいの後に走りましょう。
リフレッシュ
OK。
私たちのキャンプ場には新しいキャンプ場を追加することができますが、もちろん私たちはサーバーを再起動するとすぐに私たちが追加する新しいキャンプ場が消えてしまうという問題があります。
ですから、それに取り組ませてください。
私たちが必要とするすべてのものを開こうとしていますが、これは今のJascファイルのアプリです。
そして最初に私たちがやりたいことは、マングースをインストールすることです。
そこで、NPMはmongooseダッシュダッシュを保存し、私たちはプロセスをバックグラウンドで実行していることを確認したいと思っています。
私たちはパッケージを見ることができました。
ジェイソンはここでマングースを持っていることを二重チェックします。
そこに行く。
今ここにいる。
私たちは、それと同じように、それをmongooseという変数に保存するようにします。
必要なステートメントがたくさんあるときによく見かけるものは、宣言をVarsityから取り除くことができ、複数の変数宣言が連続している場合にこれを行うことができます。
カンマで区切ることができます。
そこに行く。
そしてこれは、body parserとMongooseで呼び出された別の式の変数を、まったく同じように動作させます。
私たちは何度も何度も書き込む必要はありません。
また、時には見ることもあるのは、人々がこれらを整列させて、こういう風に見えるということです。
それは本当に個人的な好みの問題です。
私はあなたがそれを見るように今ここにそれを残すでしょう。
しかし、あなたは両方の方法でそれを見るでしょう。
コードが動作する方法には影響しません。
それはちょっとした文体の変化です。
OKだから、イエスが私たちに間違いがないことを確かめた後、節を節約して実行しましょう。
すばらしいです。
今私たちがしたいのは、マングースをつなぐことです。
私たちはmongoose
connectをやるつもりですが、Mongar TVにデータベースはありませんので、動的に作成するだけでMongo
DBコロンスラッシュスラッシュとlocalhostスラッシュに接続する必要があります。まだ存在しないデータベース。
だから、ちょうどそれをYelpキャンプと呼んで保存しましょう。
そしてこれはMangu
D-Bの代わりにYelpキャンプデータベースを作成し、アプリを全くうまく動かせばテストすることができます。
次に行うべきことは、スキーマを設定することです。私はここでそれを行うつもりです。
だから私はここに少しコメントを追加します。
スキーマが設定されていて、このファイルは少し長くなるでしょうし、今後のビデオではそれをリファクタリングするつもりです。
これは実際のプロダクションアプリでこれを行う方法ではありません。
もしあなたが10種類のモデルと異なるスキーマを持っていたら、特にルートがたくさんあるなら、非常に速く狂ってしまうでしょう。
だから私たちは後でこのファイルを別々のファイルに分割しますが、現在は1つのスキーマを実行しています。
だからそれをvar campgroundスキーマと呼ぶことにしましょう。次に、それを新しいマングーススキーマと同じに設定して、私たちを資本にします。
そして今のところキャンプ場には文字列とイメージという名前だけがあります。
それも文字列で、私たちはすでにここにあるものを使用しています。最後に保存するのは、モデルvar
campgroundをmongooseのトップモデルにしてコンパイルし、次に再びキャンプ場を引用符で囲むことです。
そして、最後にキャンプ場スキーマであるスキーマ。
それでは、このスキーマを使用するモデルを作成し、その上にたくさんのメソッドがあるので、キャンプグラウンドのようなものを見つけることができます。
私たちが最初にやりたいことは、単純なキャンプ場を加えることです。
ですから、これらのいずれかを取ってみましょう。私たちはキャンプ場を作ってキャンプグラウンドを作って始めます。
それはこのように見える。
これは、試してみるとすぐに削除されるように、一時的なものです。
キャンプ場を作って、私たちが作成したいオブジェクトを渡したことを思い出してください。
私はこれをちょうどこのように少し上手くフォーマットするつもりです。
だから私たちは最初にオブジェクトを作成して、その後コールバック関数を持っています。
最初にエラーが発生し、2番目がキャンプ場になります。
そして、単純な定数ログを作成します。
エラーがログを取り消した場合はエラーを出し、新しく作成したログをキャンセルします。
ちょうどそれのように。
そして、次の行で我々は短所を行うでしょう。 ああ。
キャンプ場。
OK。
だからそれは多くのコードです。
しかし、私たちがやっていることは、このデータを使ってキャンプ場を作ってから、それを1つの巨大な線ですべて行うのではなく、ちょうど間隔を置いてしまったことです。
私はそれを離してしまったので、一度これが実行されるコールバック関数を持っています。
それが成功するかどうか、コールバック関数があるかどうか、それを公正に処理するエラーを処理しています。
だから私たちはただエラーを印刷しているだけです。
そしてエラーがなければ、キャンプ場を印刷します。
大丈夫。
だから私たちが今できることは、ノードを実行するだけでこれをテストすることです。
そこに行く。
新しく作成されたキャンプ場。
それは創造が働いたからです。
何もエラーは出ていませんでした。
だから私たちはこれを得て、それはイメージと名前のように見える。
また、Mongo Councilを開くことができることを確認するために、ショーTBSを行うことができます。
ここに私たちの新しいヨアヒムのデータベースがあります。私たちはそれと同じようにYelp camを使うことができます。
そして、私たちが行うことができるのはコレクションを展示することです。私たちのモデルCingularの名前はキャンプ場であり、私たちのためにそれを複数形にしたので、私たちはキャンプグラウンドを作ります。
そして、私たちができるのは、D-Bキャンプ場がキャンプ場を探していることです。
そしてそこに私たちは1つのキャンプ場に行きます、それはIDと自動的に割り当てられたIDを持っています。
驚くばかり。
だから出て、もう1つのキャンプ場を追加して、これを取り除いてみましょう。
Semin
Creekではなく、花崗岩の丘を作っています。私たちは、作業するための初期データを用意しておきます。
それで、まさにそのような名前のイメージ。
そして、ノードを再度保存することができます。
はい、我々は花崗岩の丘を作成し、それは今のところ十分です私たちの2番目のキャンプ場があります。
次は、このコードをすべてここに置き換えます。
このコードをすべて削除することもできますが、ハードコードされた配列を使用するのではなく、そのキャンプ場を使用しているすべてのコードを配列に置き換えることもできます。
私たちがすべてのキャンプ場を取得してリストに表示するときにここでやろうとしていることは、ここではデータベースからすべてのキャンプ場を取得して、まずそれを行うことができます。
私は今、このラインをコメントアウトするつもりです。
すべてのキャンプ場をD-Bから取得し、そのファイルをレンダリングする必要があります。
そして、私たちがキャンプ場をすべて取得する方法は、キャンプ場を見つけることです。我々はすべてを探しています。
そしてコールバック関数が必要です。最初にエラーが発生し、パラメータがキャンプ場と呼ばれ、エラーの場合はエラーがあるかどうかが常にチェックされます。
そして、我々はただのログエラーをします。
今のところ、実際にユーザーにメッセージを表示しているところで、後でエラー処理を改善する予定です。
今のところ印刷しています。
そして、ここで私たちがやろうとしていることは、ここにあるように赤い点をレンダリングすることです。実際にそれをそのまま残すことができます。
その理由は、私たちはまだキャンプ場ファイルをレンダリングし、キャンプ場ファイルにレンダリングしたいということです。私たちはそれをキャンプグラウンドと呼ぶことを期待しています。
違いは、キャンプ場のソースはもはや私たちがここでキャンプ場を持っていたアレイではなく、ここで定義されています。
だから、少しはっきりさせましょう。
私はこのようなすべてのキャンプ場を呼んでいます。
そして、ここで私はこれを変更します。
すべてのキャンプ場が見えて、接続が見えます。
そこで、私たちは、コレクション内のすべてのキャンプ場を見つけるためにキャンプ場を行っています。
それが完了したら、このコードを実行してください。
コールバック。
エラーがある場合はエラーを表示します。
さもなければ、すべてのキャンプ場を取る。
それはちょうど戻って来て、キャンプ場にEをそれらを送信します。 J. 提出しました。
今、私たちが保存してサーバーを再起動すると、これを取り除くつもりですが、それ以外の場合は、データベースに別の花崗岩の丘があります。
今はサーバーを起動してページを更新します.2つのキャンプ場が表示されます。
これらの2つはデータベースにあり、ハードコーディングされたそのキャンプ場アレイをもう処理していません。
これらは削除するまで常にデータベースに格納されます。
しかし、少なくともサーバーが再起動したり、そこに何らかの問題が発生しても、それらは引き続き維持されます。
だから、これは、ユーザーが新しいキャンプ場を追加したときに動作するように、これを機能させることに焦点を当てています。
そして今、私たちは小さな問題を抱えています。
私はちょうどここにジバリッシュを入力し、送信をヒットするとエラーが発生します。
キャンプ場は定義されておらず、新しいキャンプ場をキャンプ場に押し込んでいる実際にはイエス・ライン54にあります。
しかし、私たちがそれを削除したので、そのキャンプ場トレイは未定義です。
それは以前は桟橋でしたが、私たちはこの作業を私たちが望むようにするためにそれを取り除きました。
もうこの行は必要ありません。
代わりに、私たちがしたいことは、新しいキャンプ場を作り、データベースに保存することです。
だから、これは名前とイメージをつかむ必要がある場所と同じであり、このオブジェクトを作る場所も同じです。
そして、私たちができることは、それをデータベースに保存することだけです。作成するキャンプ場で最初の引数を作成するか、新しいcampgroundというオブジェクトに既に格納している新しいものを作成します。私たちはそれを渡すことができ、それからちょうどそのようなコールバック関数が必要です。
2つの引数のエラーを覚えておいてください。このように新しく作成したものを呼び出すとエラーが発生した場合は、エラーが発生し、ユーザーが入力したフォームデータに問題がある場合はエラーが発生します。私たちが実際に何をしたいのか考えてみてください。
そして最終的には、ユーザーを再びフォームに戻して写真のようなものを示すメッセージを表示します。空白または名前をCampiに入力します。
しかし、我々はそれらにメッセージを表示することができます。
今のところ、私たちは試行錯誤の間違いの常時ログに固執しています。それ以外の場合は、うまくいけばそれだけでキャンプ場に戻ってください。
キャンプ場にリダイレクトする。
そこに行く。
そして、それはここに再びこのルートを走らせます。ここにはちょうど追加されたばかりの新しいキャンプ場を含むすべてのキャンプ場があります。
だからそれを試してみましょう。
私はサーバーを再起動し、使用するイメージをつかむつもりです。ここでこのイメージを使用します。
あなたがAroをコピーして、私はここでアプリを開き、OKをリフレッシュして、新しいキャンプ場を追加しようとします。
そして、この1つはクラウドの休息場所と呼ばれ、ヒットして提出すると、それは働いたように見えます。
あなたはここに戻ります。
私たちは何の誤りもありません。
ページを更新してもそれがまだ表示されていれば、サーバーを再起動するとこれが真のテストになります。
それはまだそこにある。
OK。
そこで私たちはキャンプ場にデータの永続性を導入しました。
サーバは、何らかの災害が発生した場合でもその電源が出るのを止めることができます。
私たちのデータは依然として存続します。
だから私は雲9に戻ってきて、私がしたことの簡単な要約をします。
そこで私たちはここにマングースを加えました。
私たちは最初にこのコードを実行したときには存在しなかったが、最初に作成されたキャンプデータベースを使用していたたびに存在しなかったYelpキャンプデータベースに接続し、次に名前と画像を持つキャンプグラウンドスキーマを設定しました以上です。
しかし、もし私たちがもっと多くのものを追加したいのであれば。
非常に簡単で柔軟性があります。
そして、この悪名高い行は、スキーマをコンパイルして、キャンプ場をどのように見せるべきかについてこの青写真を取っているモデルにしました。そして、私たちが使うことができるいくつかのコードに変換しています。それは重要です。
私たちはスラッシュキャンプ場の中でそれを使用して、すべてのキャンプ場を取得してそれらをすべて表示しています。
また、フォームからデータを取得する場所をここで作成してください。
これは非常に多くの変数があるため、少し混乱します。
私たちはフォームから名前と体をつかんでいます。
私たちは別のステップとして新しいオブジェクトを作っています。
私たちはちょうどこのコードをとってここに貼り付けることができました。
しかし、私は私たちがやっていることを示すだけで、とてもうまく新しいものを作るのが好きです。
だから、新しいキャンプ場は、オブジェクトの名前です。フォームから来るイメージは、それが成功したかどうかに関わらずCreateが実行されたときに実行されるそのカバーコールバック関数で作成したイメージです。
そして、ここでエラーを処理します。
今は非常に基本的なエラー処理があります。
今あなたは本当に扱っていませんそれはただエラーを印刷しているところを認めているだけの誤りです。それ以外の場合は、私たちがここに戻ってくるキャンプ場のページに戻ります。
さて、私たちは今、マングースを接続しました。
データベースをセットアップしました。
私たちはこれを使い続けるつもりだし、まもなく、コメントを追加するときにコメントのユーザー認証があるときに、ユーザーのための別のモデルと別のスキーマを見るつもりです。