大丈夫。
お帰りなさい。
このビデオでは、最後のビデオで言及した問題を取り上げます。これは現在、ローカルクラウド9開発環境とHerokuのプロダクション環境の間で1つのデータベースを使用しています。
だから私たちの展開されたコードは、実際には素晴らしいアイデアではないテスト場と同じデータベースを使用しています。
状況はうまくいきますが、コードが壊れているか、この方法では取得できないという意味では問題にはなりませんが、実際には良い情報ではありません。大規模なアプリケーションは、私たちのすべてのユーザーが展開されているメインデータベースです。
私たちは物事をテストしたり、誤ってデータベースのエントリを削除したり、データベース全体を削除したりする新機能を追加することは望ましくありません。
私たちの開発環境で。
だからあなたはそれらを別々にしておきたい。
そして今私たちが何をしているかを実証するだけです。
私は、ローカルホストを使用するのではなく、コードを更新したことを覚えています。
あなたやあなたがそこにあったデータベースは10か何かをフィードすることはできませんが、私たちが更新したクラウド9のローカルバージョンはManguラボです。
これは私たちのMongoラボのインスタンスです。これは現在、ローカルで実行しているものと同じです。
そしてHerokuでは、両方のページを更新するだけです。
これは、我々が1つのロデオビーチを持っていることがわかるように、我々がロデオビーチを持っていることがわかるように、Heroku展開です。
ここに新しいキャンプ場を追加しましょう。
この名前はカービー・コーブの名前になります。
私はちょうど数日前に完全に恥知らずのプラグを取ったものです、ここでこの画像を使用します。
あなたはそれについて何もできません。
だから私はそのペーストをここにコピーして、ちょうど自動完成のあいさつを入れようとしています。
ありがとうございました。
Chromeクリック提出
よろしくお願いします。
そして私はリフレッシュします。
私はここでローカルに作成された同じカービーコードを持っています。
だから致命的な出来事でさえない。
開発者が誤ってデータベース全体を削除する可能性がある。
それを見てみましょう。
私が知りたかった機能をテストしたかったとしましょう。
もし私がここに入って、私がサインインしていないものを削除したら、これを削除しても、それは生産から削除されます。つまり、決してうまくいかない人の実際のデータを削除しています。
したがって、別々のデータベースを用意することは本当に良い考えです。
だから、この問題を解決する一つの方法は、クラウド9に戻ってクラウド9スイッチに戻すことです。
さて、私たちはここでこれを使用しているので、現在キャンプlocalhostバージョンを使用して、ここでサーバーを再起動してクラウドを再保存します。
古いバージョンを使用しているか、ローカルバージョンの前に使用していたことがわかり、HerokuではまだMongaラボインスタンスを使用しています。なぜなら、今は同期がとれていないからです。
私たちはクラウド9でローカルに行った変更を、OKにプッシュしていません。
そしてこれは大丈夫です。
Sを変更して、それをHerokuで更新したいからです。
これは有効ですが、それはちょっと面倒です。新機能を追加したいと思ったら、C
さて、私はあなたが知っているデータベースについて何をやろうとしているのか把握しなければなりません。
私はこれをコメントしてコメントを書き留めるか、コメントを外す必要があります。そのコメントとコメントは、それをHerokuにプッシュしてください。そして、新しいフィーチャーをローカルに追加したい、または何かをテストしたいと思ったら、
私はそれについてコメントしてコメントを外しています。それは本当に良い解決策ではありません。
しかし、私たちが取ることができる別の解決策または別のアプローチがあります。
そして、基本的には、本番稼動中であるかどうかを示すコードを書いたり、データベースを設定したりすることです。
それ以外の場合は、ここに設定します。
今は実際にはif文にはなりません。
私たちが入っていれば私たちが生産に入っているのか、私たちがHerokuにいるのかを技術的にチェックしているわけではありません。
それは少し違う。
私たちがしようとしていることは、環境変数と呼ばれるものを利用することです。
だから我々は以前にそれらを見た。
この小さなラインはここでレビューし、すべてのExpressアプリケーションプロセスはEMV IPのポートプロセスを羨ましくします。
だから、これが何を意味するのか、これはどういう意味か。
そして、私はこれを簡単に説明しましたが、あなたのベルトの下でもう少し経験を積んだら、もう少し意味があると思います。
これが指すのは、このコードが実行されている環境です。
ですから、クラウド9でポートを羨望させたプロセスは、彼女のRokuのドットポートがおそらくIPであるというプロセスとは異なるかもしれません。
つまり、実行されている環境に基づいて変化するハードコードされたものではない変数を追加する方法です。
80 80のようなものをここに置くことができました。
もちろん、それはハードコードされています。
それは動的ではありません。
これにより、環境に応答する変数を持つことができ、javascriptのノードは実際には単なるノードになります。
彼らは常にプロセスD-NVからアクセスします。
そして、変数の名前。
ここでやるべきことは、データベースYoroを呼び出す環境変数があり、Herokuではデータベースを設定しようとしています。ここでこのような長いことができ、すべてが基本的にプロセスを書くことです。あなたがいるデータベース
これは、指定した環境の正しいURLを参照します。
それから、同じことをやります。
私たちはあなたがMongar D-Bコロンであることを私たちがlocalhostをスラッシュするArelにクラウド9データベースに設定されている彼女はキャンプフィールド10することができます。
だからもう一度考えてみると、私があなたにやってもらえない環境変数を作ることができるということです。
これはあなたがそれらにアクセスする方法です。
しかし、これはこのアプリケーションの外部から来ていることを忘れないでください。
これは、コードを実行しているサーバーの実際のアプリケーションまたは実際の環境から発生しています。
そこで私たちがこの作業をどのように行うかを実証するために、私はここでクローズアウトすることから始めるつもりです。タイプエクスポートが新しいコマンドであるときに、環境のコマンドラインに新しい環境変数を作成し、私の環境変数を書くつもりです。これは通常、大会では大したことはありません。
ここでIPポートを見ることができます。
だから我々はデータベースを行うでしょう。
あなたはすべて平等であり、クラウド9インスタンス上で実行したいものと同じにリセットを開始します。データベースをすべて同じにしたい場合。
ちょうどそれのようにし、それがあったかどうかを確認するために入力します。
ここで実際にここに行こうとしています。
そのログプロセスをキャンセルします。
お父さんは羨ましい。
そして、これはあなたが知っているデータベースと一致する必要があります。
そして、このMongar D-BコロンがCanvey
10の地元のホストを退かせたり印刷したりするのを見ると、あなたが知っている開発データベースを正常にセットアップしたことがわかります。
それでは、ノードがどうなるかを見てみましょう。
はい、そこには印刷されているのが見えます。
私はローカルホストをプリントアウトするとは決して言わなかった。
ふりをすることができます。
私はあなたがアップしている環境変数データベースを言った。
だから今私たちがする必要があるのは、MangeshkarがプロセスNVIデータベースに接続すると言うことだけです。
あなたはIRAとそれからHerokuに、このMongoラボの巨人であることを知っているデータベースを更新する必要があります。あなたはすべて文字列ですが、Herokuでそれが起こりたいだけです。
私たちはこれをクラウド9に残したい。
だから、それが動作することを確認して、再起動をボーカライズしましょう。
すばらしいです。
ここで正しいバージョンに移動しましょう。リフレッシュしています。まだ地元のコードを取得しています。Herokuはもちろん、Herokuにコードをプッシュしていないので変更はありません。
だから私たちがこれを保存して、あなたがIRLを更新すると言うことを追加しコミットすれば、Heroku
Mをプッシュします。
私たちがHeroku版を今すぐ実行しようとすると、少なくとも私がこのページを更新しようとすると、これが終わるとすぐに、Herokuがプロセス調査とビデットデータベースを見つけることができるサーバーなので、エラーが発生しますそれは設定されていないので、あなたは知っています。
ちょうどリフレッシュが少しかかるかもしれないことをあなたに示すために、彼らはアプリケーションエラーを取得する必要があります。
何が起こっているのかを本当に知りたい場合は、アプリケーションエラーが再び発生します。
それはHerokuのログで、ここから見ることができます私たちが得たエラーメッセージがどれほど有用であるかはわかりません。
どれどれ。
これは、あなたが望んでいたことを正確には伝えていないメッセージの1つかもしれませんが、それは私たちにMongar
D-Bにエラーがあると伝えています。
Yessoは、実際に何が起こっているのかは、データベースがないという事実を除いて、技術的に問題のない空の文字列に接続しようとしているため、このデータベースが問題であると明示的には言及していませんあなたは空の文字列です。
それは予期せぬエラーメッセージのようなものです。
だから私は、プロセスを設定していない、またはHeroku上で環境変数を設定していないという問題があることをあなたに伝えています。
だから、それをするために、我々はHerokuそれ自体に行く場合、それを行うことができるいくつかの異なる方法があります。
私はおそらくここに戻ってページをリフレッシュする必要があります。
いいえ、私はうそをつく必要はありませんでした。
ここに私たちのアプリです。
私たちが入ると私たちは設定に入る私はそれが信じています。
そしてスクロールダウンしたり、設定変数に行きます。
ここに変数を追加できます。
だから、君は君のデータベースを巨大な文字列にしたい。
私はそれをコピーし、追加をクリックします。
そして、もし私たちが戻ったら、ページをリフレッシュしてみてください。
それは完全に正常に動作します。
それがその方法の1つです。
私はHerokuに進み、Erlassのキーバリューペアデータベースと変数のキーまたは名前、環境変数、そして値を追加する方法を示しました。
これは、コマンドラインを使ってコマンドを実行することです。これを行うもう1つの方法です。
ここでこれを行うことができます。
私にはNo.がある
J. S. ドキュメントをヘロクで開き、ヘロク設定コロンを設定してから、キーを値と同じにします。
だから、私が実際にそれをやろうとしないなら、私はこの最初のビットをコピーします。
私は入力をヒットするつもりはないが、私はちょうどそれがHeroku設定Kolinになるとあなたと私はあなたがアップしているペーストを持っていたデータベースを表示したいと思います。
しかし、私はそれを行うつもりです。
私がまだ言及していないもう一つのことは、環境変数を使うもう一つの良い理由があることです。そこに隠されているのは、このコードを良いハブに置くと開発者が何にでもさらされていないということです。
私たちのデータベースは、もちろん私たちがあなたのデータベースを既に知っている場合、私は当然のことです。
しかし、これは明らかに本当のアプリではありません。
しかし、これがオープンソースのアプリケーションであっても、コードやオープンソースの一部であっても、実際のアプリケーションであれば、データやデータベースを公開したくない場合は、コードを見ているすべての人に出ています。
だから、ここの行をMongarに接続することで、NVドットデータベースがあなたの問題ではなくなります。
開発者が見ているだけでなく、コードをブラウズしている人が帰ってくると、自分のデータベースをセットアップする必要があります。
環境変数を使用しています。
OK。
だから私たちがしたことを要約しましょう。
開発と生産のための1つのデータベースの問題を解決するための共有データベースを問題にすることから始めました。
データベースのURL環境変数はクラウド9にローカルに、同じ変数に対して2つの異なる値に設定しました。
そして、私たちはENVIデータベースをIRLに変換し、その変数に接続することで環境変数にアクセスしました。
だから私たちには2つの結果があります。
私が言及することの1つは、デフォルト値を設定する価値があるということです。
だから私は何とか私のコンピュータを再起動すると私のアプリを台無しにしたとしましょう。
私は私の環境でこのワークスペースをリセットしたことは知らないのですが、変数がなくなった、または誰かにこれを送ります明示的に設定していなければ、完全に壊れません。
私ができることは少しバックアップを加えて変数を作り、それを呼び出すだけです。
あなたはすべて平等であり、我々はあなたが実際のデータベースで開始されたプロセスをやるつもりです。
そして、私たちはあなたがそこにいる人をいくつか置くでしょう、あなたはすでにELLYARDがそれを失っているかどうかを考えましょう。
そこにいる。
これは単なるバックアップになります。
ここでも何が起きているのかは、機能を変更しないで強制的に行うのではなく、何らかの理由で私の環境変数が不正になった場合、または存在しなかった場合です。
コードを壊すのではなく、これはあなたがすべて変数であるということです。環境変数が存在する場合、環境変数と同じになるでしょう。
もしそれが空の文字列であったり、それが存在しなければ、これは私たちのバックアップであるこれと等しくなるでしょう。
この場合、クラウド9にはまったく同じことがあります。
それは本当に再び必須ではありません。
何かがうまくいかない場合に備えておくのはちょっとしたことです。
しかし、実際にはこれを見るのがかなり一般的なので、私はあなたにそれを示しています。
OK。
このような状況に近づくには、長い間巻き込まれているのか、そうではないのですか。しかし、私たちはさまざまなデータベースプロセスを必要としているという事実に気づいています.IRLは、ノードアプリケーションから環境変数にアクセスする方法です。
環境変数はノードのものやjavascriptのものではありませんが、明確にしたいと考えています。
RubyアプリケーションrailsアプリケーションPythonアプリケーション彼らはすべて環境変数にアクセスできますが、これは比較的簡単です。これはノード内で、Rubyのような他の言語のプロセスをviで作成する場合に起こります。
あなたは、あなたが知っているENVデータベースのようなものをよく見るでしょう。
したがって、それはノード特有のものではなく、あらゆる種類のアプリケーションにわたって普遍的な概念です。
データベースのURLにこれを使用するだけでは、いつでも使用できます。
ここでタイプミスのように見えます。
いずれにしても、localhostでなければなりません。
異なる環境の開発や生産の間で異なる情報を必要とする場合は、いつでもこれを使用してください。
また、あなたは誰かから情報を隠すか、あいまいにしたり、助けを求めたりするときにもこれを使います。
あなたのコードのためにあなたのアプリケーションの中にあなたのPaypalまたはあなたのStrypeクレジットカード処理API情報があったならば。
あなたの現在のものを分かち合いたいのであれば、どうやってそれを押し上げようとは思わないのか分かります。
だからあなたができることは環境変数を作り、プロセスのようなことをすることです。
Ian
VIは非常に機密情報を枯渇させました。あなたのコードを共有したいという問題を回避する方法です。公開されるだけでなく、誰かがあなたのAPIキーを取得して、何千ドルもの実際には、より大きな企業の中には、それを警戒することに関してはるかに優れているものがあります。
あなたがAmazon
APIキーまたはAWOS情報をAmazon Web
Services Webサービスの情報に持っていれば、彼らは実際に彼らが知っていることを知り、すぐにこれを取り除く必要がある、または無効にする必要があるというメッセージを送信しますそれ。
誰かがこれに何千ドルも何千ドルも請求することができます。
彼らはあなたや基本的にあなたのアカウントを使用して、彼らが支払う必要がない巨大な請求書を流出させることができます。
比較的頻繁に起こる。
私はその問題を抱えている学生や私と約束をしている学生たちについて聞いたことがありますが、これまでに聞いたことがあります。
大丈夫。
ですから、環境変数にアクセスする方法は羨望です。
私たちは2つのデータベースを設定しており、現在は2つの異なるデータベースを導入しています。
彼らは私たちが望む方法である情報を共有しません。
驚くばかり