>>すべての権利私たちが戻ってきた、 今日の目標のカップル、
我々はどこに買ってくる 私たちは、前回中断した、
私達があったことを思い出す この連続を作る
サーバー関連のアプリケーションの、 超簡単、ノードのJSを使用して
そしてその後も、最近 AS Expressのタッチを使用して
そして何がJSを表明した PHPの世界でのアナログ。
そうExpressは、もっと...近い
そうExpressは、本質的に きれいだMBCの枠組み
ノードJSの世界で普及し、
私達が表示されます本棚 今日ティム経由でアナログである
ORMで説得力の オブジェクト関連マッパーに
それは実際にそれが容易になります 低レベルのSQLコードを避けるために、
そして、実際に関係を表現する 様々なオブジェクト間。
クールなのそう1 正直なこと
約ノードJSどれだけある 簡単には適してい
リアルタイムアプリケーションを行うために、 チャットサーバーのようなもの
またはメッセージング·サーバー、 皆さんが今使って何でも
グーグル···G-チャットのような またはGoogleのたまり場
またはFacebookのステータス更新 あるいはTwitterのあなたがいる場合
自分のWebページすべてに リアルタイムの一種である
またはあなたが提供します リアルタイムの錯覚
それは、実際の痛みです 何かとは何の首
PHPと私のSQLのよう 我々は正しい何を提案した
月曜日に手段になる
それによってあなたが実装することができ リアルタイムの動作の錯覚
PHPのチャットサーバと、 あなたは何をすべきかを持っているでしょう？
アリスはヒット、メッセージを送信します それはどこに行くん入る？
うん。
>> [聞こえないセクション]
>>データベースにして、 ボブのブラウザは何がありますか
実際に見に行うには どのようなアリスはそう言ったのか？
>> [聞こえないセクション]
>>データベースをポーリングしてください、 右なので、Ajaxリクエストがあります
毎秒、毎数を発射する 秒以上、我々は簡単に話した
しかし、例を見ませんでした ロングポーリングと呼ばれるもの、
誰もが思い出す方法
そのメカニズム...上 高レベルの作品？
>> [聞こえないセクション]
>>その通り、ええそうブラウザ まだAJAX要求を行う
サーバに、フー·ドットPHPへ しかし、フー·ドットPHPはちょうどようである
ハングアップしたように、それは本質的に座る できるだけ多くのためのwhileループ内
30秒として、通常と 一度だけのfooドットPHPファイル
オハイオ新しい行があると実現
データベース内のい それは実際に応答する
HTTPの応答で。
だから、この可能性があることを考える そうでなければ、サーバがハングアップする
それはある程度い
それはそこにあることを意味し はるかに少ないオーバーヘッド
あなたは、新しいTCPを必要としないので、 接続、新しいHTP接続
要求に実際に サーバーからのデータ。
しかし、ノードのJSは非常に付属しています ソケットと呼ばれる人気の図書館
あなたは可能性IOドット 使用されることはありませんが、上に構築されています
ウェブと呼ばれる技術の 存在するソケット
最も近代的なブラウザと中 あなたを許すものをソケットIOんです
基本的に作成する 持続接続
ブラウザとサーバ間の それは、非常に低いオーバーヘッドです
だから、必ずしもない 同じスケーリングの問題を持っている
君がいるなら、あなたがないとは限りません。 常にサーバを打つ
PHPの世界ではと 私のSQLなどが挙げられる。
でも、古いブラウザ用
ウェブソケットをサポートしない ioができ、このライブラリソケットドット
点滅に頼る ソケットの実装
とソケットは、ネットワーキングである 例えばCS143からのもの。
あるいはそれも、長い間に頼ることができます ポーリング自体ので、彼らは実装
仕事のそれと同じ種類
周りの実際に維持するための その接続の錯覚。
そうIO [聞こえない]端子 これは形態であり、
Javaスクリプトライブラリ、 基本的にあなたがそれを使用する場合
ノードJSの形で アプリケーションをインストールするだけでなく
それに何かを使用してパッケージとして 我々は月曜日に使用NPMのような
そしてまたはあなたも含める HTMLファイル内でタグを取り除く
つまり、使用して述べています クライアント側ライブラリ。
だから、二つの半分にはありませ それと我々はここで何をやった
第四の反復で 月曜日のシーケンスの
例以下の通りである。
したがって、このファイル構造である 非常に一般的なセットを彷彿とさせる
表現JSのためのアップと ありがたいことに、それは方法が簡単です
lervo [ふりがな]より 設定したとき、思い出した
あなたが巨大な厄介を得たlervoアップ ファイルの全体の多くのダンプ、
ベンダーのディレクトリ、libと非常に 重いが、これに比べて。
今、公正さに、私たちを剥がしてきた ほとんどの距離のもの
気晴らしが、すべての ジューシーなものが本当にある
ノードモジュール内。
ただあなたを与えるために 我々は見てみると味
ノードモジュールにあります 二つのモジュールやライブラリ
私がダウンロードしたことを、この 等価である
ベンダーのディレクトリ、1 エクスプレスと呼ばれるある
larevelのような、ノード内の
とソケットIO 1私は、今述べた。
だから、それらが存在し、我々はできるように、 私が開いた場合に次の操作を行う
最大のインデックスドットHTMLを言わせて、 HTMLでの初見てみましょう、
これは構成しようとしている この身体、私のスーパー、
超簡単なチャットサーバー。
だから、ULは明らかにありま​​す メッセージのユニークなアイデアを持つ
それはどこだ 一度に1李、
インスタントメッセージのすべてがある アリスの間で表示されるようにしよう
そしてボブは、次にあります テキストフ​​ィールドを持つ単純なフォーム
そして送信ボタンを それによってアリス
またはボブが実際にできる お互いのメッセージ。
もし正味の効果は、そう 私は、このアプリケーションを実行する
ノード宇宙アプリのドットを実行して JS、私はカップルを引き上げた場合
ブラウザウィンドウのことです アリスは右側にあるかもしれない、
ボブは上かもしれない ただ左と
明確にする魔法はありません ここで私は一つのウィンドウを持っている
お忍びではありませんありますので、 クッキーか何かを共有する
このように、これらは 二つの異なるユーザーが。
私はアリスを持っていることができるはずです こんにちは、ボブと言う、提出をクリック
そして今、あなたは、左側に表示 アリスのメッセージが送信されたこと
ほぼ瞬時に 右側。
一見関係するポーリングなし、 ボブは、同じメッセージを受信しました。
今ボブはちょっとアリスを言って言う あなたが逆の効果を参照してください。
それでは、実際にどのように、起こっている 多くのコードは、我々は記述する必要はありません
このチャットサーバを実装する
そのあなたが今外挿することができます 精神的にそのすべての人
この場合は、この部屋に 私の[聞こえない]にありませんでした
しかし、フー·ドットコム上の我々はすべての可能性 瞬時にチャットを開始
互いに。
それでは関わっていると私の前に これはこれです、この画面をクリアする
というIOだけソケットである それだけで印刷するのは、少し騒々しい
デバッグ情報を 画面に、
何も本当にありません 他にそこに起こっている。
だから私はそのように、アプリのドットJSを開いてみましょう 我々はいくつかのことを持って前と同じように
ファイルの先頭に。
要件の束、 ので、これらのライブラリのようなもの
または手がかりをシャープまたはrequire oncesどんなメンタルモデルには、
ただ持ちたいと FSが使用されている要約すると
機能性の種類ごとにどのような？
soファイルシステムは、そのファイルを読む 潜在的に、そのようなもの
そして私は1で、これを使用 あなたが見るように配置し、
もちろん、Expressはこれです 我々は使用しているフレームワーク、
厳密ではない 我々は必要な可能性
月曜日のように完全に作成する 最初から私たち自身のHTTPサーバ
実行して、サーバーとすべての作成 前からのコードのその種類の
しかし、我々は、これができます見るよう 物事は少し楽に
私がしなければならないすべてであるため、 インスタンス化ここに3行目
そして、オブジェクトを表現する私が電話するよ それは、やや恣意アプリ
私はその後にアプリを教えてあげましょう 、1337を任意のポートをリッスン
それは、慣例により80できた
した後、最後に私は新しいを持っている 言っているラインは本​​日
ソケットを要求する その後、IOライブラリと
このチェーン·アプローチによるだろう 私はちょうどよこのドット演算子
それはだ聞くレッスンを呼び出す 基本的にソケットを伝える
IOライブラリへも その同じサーバーに耳を傾ける
またはWebソケット接続。
だから今何、それがどうしている このやって、これらの4つのライン
ここで、コードのどのべき larevelを思わせる​​見て、
これは何を表しているのでしょうか？
>> [聞こえないセクション]
>>これは単に、···ルートである ルート、アプリのドットJSで非常に
応じて、サーバーのドットJS別名 人々がそれをコールするかについて
独自のアプリケーションで あなたが規則を持っている
あなたのルートを定義することの、
アプリのドットはいつ手段を得る あなたが行ってGETリクエストを取得
文字通り先に行くスラッシュのために この無名関数を呼び出す
そして中に無名関数 この場合は、要件によって取り
または、要求と応答、 可能性のあるいくつかの他のもの
しかし、最低限これら2。
要求はあなたにアクセスすることができます HTTPパラメータのようなものに
ヘッダとその他 ジューシーなこと
し、応答 メカニズムである
あなたができることで ユーザーに応答します。
だから、これは超簡単であっても、 我々は非常に見ていないのに
同じコード前回、私は ファイル·システム·モジュールを使用して、
読み出されたストリームメソッドを作成 その本質的に行い、
読み込みストリームを作成した 基本的にズルズル開始を意味
インデックスドットからのバイトまで 同様に効率的にすることができますように、HTML
必ずしも待たず あなたのファイル全体を読み込むまで
あなたはそれを行うように パイプ文字通り
縦棒の意味で あなたは満足している場合には
Linuxのコマンドラインで、
応答へのパイプに オブジェクトの。
だから、2例がありました 月曜日のストリームに関連し、
私たちは、1つを見ましたが、 あなたが振り返るして歓迎している
ストリーム入出力とストリーム1時。
ストリーム1 ... 0でした これと似たような、
ストリーム1は何かをした ほぼ正確にこのような、
これはただ滑らかです ソートというのが1ライナー
こっちでの吸い込み何か してから、ここでの送信を開始
同時にすることなく 質量同意をしてい
して、大規模な権利、
このアプローチは、 一般的に、より効率的。
だから、古いもののようなものだ それは月曜日に新しかったとしても、
これは、それが取るすべてで チャットサーバを実装
ノードJSおよび多く 特にIOドットソケット。
だから、どのようにこの作品はないが、 私は少しそれを上に移動させて、
そのIOは単なる変数です それがいい
モジュールたちへ それ以前に必要な、
ドットソケットがあるだけ その中の財産
それは私のソケットを提供します 関連する機能
一般的な方法であることに どのような一般的な概念であって？
イベントは、というように別名盗聴 それだけで意味いくつかのライブラリ
このイベントを聞いて 接続と呼ばれている
そして今、あなただけのこれを知っている 資料を見て、
誰でもライブラリを書いた というイベントを定義した
接続したん あなたは何を思うだろう
アリスやボブは接続したとき。
先に行くと、これを呼び出す 無名関数を渡す取る
1引数でクライアント 明らかにいくつかの種類である
表すオブジェクトの アリスの接続
またはボブの接続または チャーリーまたは他の誰
そして今、我々は次の手順を実行します。
私たちは、後にクライアントを教えて 彼または彼女が接続されている
特に耳を傾ける
完全のメッセージのために 任意に呼ばれるメッセージ
コロンクライアント。
これはティムと何かである 私は、それがfoo可能性を思い付いた
または、それは単にいくつかのバーの 私たちに必要な一意の文字列
などの際に決定する 開発者。
アリスやボブは聞くたびに
この匿名のそのイベント 関数が呼び出される必要があり
およびデータ、 アリスの内容
またはボブのメッセージがでなければなりません このイベントハンドラに渡さ
そして今何をすべき クライアントは、よくあなたが親切なことができん
かなり直感的にこれを読んで クライアントは、放送されなければならない、
そうでなければEMIT Aとして知られている メッセージと呼ばれる方法サーバ
それによって、このメッセージを意味する サーバーからではなく来ている
ブラウザとものとは そのメッセージは次のようになり、
それは明らかからのペイロードです クライアントから来たどんな
そして私達はちょうどしようとしている 任意のメッセージと呼んでいます。
だから、これの多くは任意である
合理的な命名を通じて コンベンション、ティムと私が来た
とまでは、主にティムと私たち 単純に、最終的に作成している
何をしないサーバー、チャット、 アリスは、メッセージを送信する
そしてヒットは何のイベントを入力 明らかにトリガーされます、
ただ要約する。
アリスの種類のメッセージ、ヒット メッセージクライアントが起動され、入力し、
このコードはそれを聞いて、 サーバが何をブロードキャストし、
最終的な結果は何でしょう これは本当に？
アリスは今メッセージを送信 サーバーはそれを再放送
効果的に除いてすべての人に アリスのために、なぜ皆を除く
アリスのためのあなただけ見れば
ドキュメントのクライアントで ドット放送されたドットは、認める
文字通りそれを実行し、 メッセージをブロードキャスト
を除くすべての人に あなたを送信したクライアント
その最新のメッセージ。
これは、なぜあなただ​​けです 一度それぞれの側にそれを参照してください
あなたがアリスとの両方が表示されない BobはAliceのメッセージを取得。
だから、それはそれだ、この 中継エージェントです
あなたはそれはですする場合 メッセージだけを取り入れる
そしてそれらを再放送
それが顕著だ スケーラブル私も意味
超簡単に サーバと数行
コー​​ドのあなたは確かに可能性 何千人もいない場合は、数百人を処理
同時簡単なメッセージの 次のように行ったり来たり
ちょうど複雑さを想像する 今のPHDでこれを行う
またはLarevelや私のSQLと あなたが持っているどのくらいのコード
するために書き込む 実際にそれを達成。
今、公正性のこの 永続的な権利はありません
サーバーがダウンした場合 我々は全体の歴史を失う
そう、それは非常にAではありません 完璧な翻訳が、それはだ
そのまっすぐ進む。
Javaスクリプトを見てみましょう 我々は上の以前のスキップコード、
これはアリスのです ボブのクライアント、
彼らは今使用しているWebページ の瞬間のためにここまで見てみましょう。
もう少しコードがあります
しかし、それだけでかなりの ここにjQueryのため、予告
そのWebページでの 私が引っ張られていること
前に私たちの瞬間まで jQueryライブラリが含まれ、
ソケットライブラリIOなど 脇違いに気付く
ここで、にスラッシュをスラッシュ パスの先頭
このように正確に何を意味し、
ここでjQueryのドットである どのようなサーバー上のJS？
うん。
>> [聞こえないセクション]
>>これは、インターネット上にある、ええ 文字通りと呼ばれるコードドットのjQuery
ドットコムは、なぜ、スラッシュ、スラッシュ なぜ1スラッシュだけではなく、
HTTPまたはコロンはどこで、 これは一般的に何を意味している
あなたがにスラッシュをスラッシュしなければ URLの先頭？
それは実際に便利です。
わかりましたので、何が明らかにだ 今HTTP欠落場合、私たちの理由
この論理的に通って、 通常は必要ありません
右のサーバー名を言及する
のような場合は、単にスラッシュを使用 jQueryのドットが想定されているものJS
ブラウザで？
ファイルが同じであること その種のサーバので継続
ロジックのあなたは教えていない場合は、 それは何のプロトコルものです
ブラウザがそのように、同じプロトコルを想定 あなたは今までのウェブサイトを訪問してしまった場合
一緒にあなたにエラーを与えること 安全でないコンテンツのライン
このページではだから 誰かがハードコーディングされている、HTTPを
用のコロンスラッシュスラッシュのURL 画像やJavaスクリプトファイル
CSSファイル、そのようなことか ページのソースコード内の
しかし、ページ自体 ブラウザのURLは、http sです。
だから、これはただです ファンシー少し道
私にはわからないというのが 何のプロトコルである
すなわち、これらのエンドユーザ 使用する予定
ちょうどそれを確認してください 一致するように、クロム
他のブラウザ ユーザーで叫ぶはありません。
唯一の難点はあるこ​​と jQueryの人々がより良い設定していた
そのサーバ上にHTTPS。
そこで、彼らは実際には 443に一覧表示されます。
大丈夫一方、この 1ここで​​、これは一種です
誤解を招くようなスラッシュの ソケットIOは示唆している
というディレクトリがあることを 私のサーバー上のソケットドットIO
我々は突くしかし、もしそこではありません
周りあります ノードモジュールのディレクトリ
しかし、何もありません これについては、公共、
我々は、ソケットIOを設定したとき 同じポートをリッスンするように、
1337本質的にそのライブラリ 誰か他の人が書いたということです行く
並べ替えのいくつかのコードを挿入する ノードJSの環境に
ちょうどこのパスを聞きます。
そのライブラリはただ持って このためのルートを設定し、
それは本当のディレクトリではありません。
それは中になります 標準の場所。
わかりましたので、今面白い 一部、
そのときに、ドキュメント 示されているように準備ができている
このjQueryので構築、 最初に私は先に行くつもりです
そしてソケットに接続、
どのようなソケットだけによって...それを維持 単純な私は接続するつもりだ
大幅に削減、それはです ユーザは、ここで
私は簡単な例を守ってきた 我々だけで接続するようになるだろう
そのまったく同じURLへ その後、ユーザは、私が行くよ訪問した
次の操作を行うことは、私は行くよ アリスのやボブのブラウザに指示
のために耳を傾ける サーバからのメッセージ。
これもfooのだったかもしれない
いつでもあなたをバー メッセージを聞く
サーバーコールそのデータから そして、このjQueryのコードを実行する
場合、私はほとんどを推測している 誰もがよく知っている
これらの日ではなく アイテムを一覧表示する、基本的にピン
既存のULにどの メッセージと呼ばれていました
それは文字通り言う ペイロードが何であれ
続いチャットメッセージの 受信に続いてハイフン、、
そしてスペースが続き、 更新時間と理由です
我々は戻っている場合を明確にする
これには、これらの追加を取得 何度も何度も弾丸
そして再び日付の時間を持つ。
一方で我々は見てみると ダウンここで我々だけで持っている
フォームの送信を処理する だから受け取っていた
インスタントメッセージの、ここでの 送信側と、これは一種で
ノードJSとは無関係なの​​、耳を傾ける フォームにイベントを送信します。
それはデフォルトを防ぐため発生した場合、 これはそれを提出しないことを意味します
通常のサーバへ 道、ページ全体をリロードする、
我々はすべてのAJAXを経由して、これをやってみたい。
ここではいくつかのjQueryのコードです
実際に入力を取得する メッセージ型があり、
名前のメッセージが先に行くされている
それは価値のget あなたが先に行く
あなたが実際に持っている場合 メッセージ、もしアリスとボブ
またはボブは、実際にいくつかの種類 なし0数字キーストロークが発する
ソケットと呼ばれるメッセージ そのペイロードを持つメッセージクライアント
次に下、こここれは 対照的に、それが緑にするもの
赤に、我々は、単に出力 機器側[聞こえない]。
だから、それはそれだが、すべての これはちょうど、セットアップされている
私は本当だろう新しいもの ちょうどこれらの3であると主張
または5、ここでコードの行と 電源投入時のヒントのその種
ノードJSのそれで この特定のライブラリ。
それでは、素早くてみましょう エクスプレスドットJSを見て、
それでは、私がしようとするつもりだ 残りのカップルでやる
分のここには設定されている いくつかのアイデアは、いくつかのテクニック
それはその後のカップルがかかります 分の休憩、ティムはセットアップされます
そして、我々は深くに飛び込むよ
より興味深いへ また、アプリケーションを表現し、
本棚にするには、ライブラリ ティムは、実際に書いている
オープンソースコミュニティのための
それは私たちに雄弁に光を与えます 私のSQLを使用した機能
トランザクションおよび他のそのような 機能と彼はまた潜るよ
に少し深く中 言語のJavaスクリプト自体、
どのように、そのオブジェクトまたは非クラス モデルは、そうでなければ知って動作します
プロトタイプモデルとして、 来て、その上にいくつかのより多くの。
それでは、最後の2を見てみましょう ここで、アプリケーション、サーバ5
そしてすべてですサーバ6 ソートの精神で同じような、
これらは、サーバ、チャットしていない しかし、彼らは、エクスプレス使用しています。
それでは見てみましょう これは何が実際に、
私が先に行くつもりだと オープン...私はこのアプリを実行するつもりです
ノードアプリJSで、私はするつもりだ 戻って私のブラウザに戻り、再ロード
これは、明らかである このすべてのサーバがやっている、
それは超簡単、サーバーの それは明らかに、検索です
エンジン私はfooの中で入力した場合 そして、何の検索結果を提出しない
fooのために、私は周りに取得していない 洗練されたを実装
バックエンド、それが起こっているすべての
行うには、どんな反響がない あなたはfooのは結果を入力していない、
バーには結果がない 私たちはこれをどのように行うのですか
そこだから カップルのピース、1、
いくつかは明らかにありま​​す 提供されている入力
サーバーではないLarevelへ もちろん、ノードのJSになりました
私たちは何とかする必要が そのパラメータQに取得、
我々は明らかにやっている ここでビューのいくつかの種類、
我々はそのようにビューをレンダリングしている 多分機会があります
テンプレートや変数 interprelation [ふりがな]
それでは見てみましょう 以下で。
この特定のためのアプリJS中 サーバーこれは、我々が持っているすべてである。
一つは、我々は表現が必要です それ自体、2つのパスモジュール
これだけのいくつかを行います 有用なもの
文字列を結合するような 一緒になど、私にとって、
私は、ポート1337をリッスンし、 さて、これは新しいですので、それは変わり
Larevelのようなことを表現出 別のプラグインをサポートしています
技術や 他のものと1
技術のことを プラグインできるビューエンジンです
まさにテンプレートを意味します エンジンは、あなたが使用しますか、
Larevel、それが自身の持っていた 事はできますが、プラグインすることができます
異なるものでは、異なる 桃のPフレームワークは持っている
テンプレートの様々な方法、 EJSただ共通している
そしてとてもシンプルエンジン それはちょうどあなたが物事を行うのを聞かせて
中括弧のようなもの あなたはLarevels構文で持っていた
変数に代入するため、
それは少し違う 構文的にすべてである。
だから今と呼ばれるこの事があります あなたはわかりますようにミドルウエア
自分のチームノードプロジェクトAの ミドルウェアは、だけの種類のコードです
あなたが注入やライブラリ
[聞こえない]レスポンスに アプリケーションのライフサイクル、
言い換えれば、これら二つの ラインは、エクスプレスを語っている
の間にいくつかの余分な作業を行う それがリクエストを受け取る時
で、それを送るまでの間 独自のルートへのリクエスト、
あなたが書いたコード。
だから、特にここでは、この行 静的およびすべての明示ドットを使用
この複雑さのちょうどこの あなたがリクエストを見れば意味
つまり、静的なファイルの入って来 フー·ドットJIFやフー·ドットCSSのような
またはフー·ドットはそうではないJS 動的に生成されたルート、
先に行くとそれが住んでいると仮定 公共サブディレクトリにある、
それはやっていることすべてです。
それは一種のマッピングのようなものです Larevel、あなたのWeb​​に至るまで
またはあなたの公開ディレクトリ むしろLarevel中。
この次の行は、単にある 私はルートを使用したいと言って、
私は物事を使いたい アプリのドットのようにGET
私たちは、先ほ​​ど見ている 我々は今まさに第二に表示されます。
だから、アプリのドットは手段を得る このルートをリッスン、
あなたはそれがこれを呼び出す取得するときにスラッシュ 取る無名関数
要求とAの 応答と今ちょうど
Larevelのようにあなたが方法を持っている テンプレートのレンダリング、
レスポンスはレンダリングドット、 引用終わりインデックスを引用、
レンダリングテンプレートです インデックスと呼ばれる、
つまり、それでは、それを中断してみよう ちょっとの一見のためのスレッド
の内容に ビューディレクトリ
これはあまりにもです気づく 今の超簡単、
インデックスドットEJSがあります ドットEJSを検索、
私は明らかに最初にしたい
そのため、私はただ一つだ レンダリングすると、我々は表示されます疲れ
ビューインデックスドットEJS中 もっとも、実際には完全なHTML
現時点では、あります 実際にはテンプレートが起こっていません。
だから私は、技術的にはしませんでした でも、EJSそれを呼び出す必要があります
私はその機能を必要としない 私は均一に保たれ、
それがある、これは何ですか 私にその超簡単なフォームを提供します。
これだけ1他のルートがあります、 我々はここでダウンして見れば、私は言った
これは、getを扱うものであること 実際のソートので、検索を大幅に削減
のハンドラなどのGoogleの あなたが得るフォームの送信、
そのパスは、これを呼び出す 無名関数
及びテンプレートをレンダリング 検索と呼ばれる
もう1つは何ですか 引数は、おそらく意味。
それはJSONオブジェクトのように見える ソートまたはJavaスクリプトオブジェクト。
それの役割は何ですか おそらく、第二引数？
>> [聞こえないセクション]
その>>実際のクエリ 明らかに生活の中で入力したユーザー
要求ドットクエリでは、クエリ すべてのものを参照する
疑問符のドットの後 任意の名前ですQ
私はGoogleのようにそれを与えたことを
そして一方のQコロンだけです テンプレートに渡すと言って、
検索ドットEJS、A qのキーと値
どのようなQの実際の 値でした。
だから、それはちょうど1の葉 ビューへの関心のあるファイル、
私が保たれ、検索ドットEJS これは超単純すぎる、
これは主だけを除いて、HTMLの 1やや顕著ライン用
ここに、この構文である 房のように見えている
異なるテンプレートの エンジンはこれは単にプラグを意味します
Qの値 とにし、太字にします。
だから、実際の検索ではありません 機能性が、それは一種ん
の示唆どのように行うのと スケルトンを構築
そのようなアプリケーションの。
一方...実際に私 1他の事が表示される場合があり、
私はいくつかを持ってないことに注意してください CSSファイルのためにここまでのhtml
およびJavaスクリプトファイル、 何もそれらのファイルにありません
その瞬間が、予告 publicディレクトリがあります
私は、以前のバージョン用に言ったように 静的ファイル私は行くので、もし
そこにあります 私のCSSディレクトリ、
私はそこに行けば スタイルは、CSSはそこにドットだ
そしてそこには内容がありません
どのようにだろうが、それはです 公共アクセス可能なファイルを持っている。
すべての権利だが、見てみましょう ここに一つの他の変形で
そして、我々は紹介します 1アイデアと休憩。
だから、これは最後のサーバー6であるため、 これ以外は、ほとんど同じです
下の2ラインの これは、このように見えます。
だから、実際にあります 違う三行目
しかし、私はそう私に戻ってみましょう...隠されてきた 微増ので、誰かがしたいん
何が起きているのかを提案する ここに素人の面で上
または専門用語ものだ このバージョンについての異なる
それらに関して トップノードの行。
私はおそらく持っている ここで行わその理由は？
うん、シャロン。
>> [聞こえないセクション]
私がしたように>>うん、それは見える 移動インデックスと検索
その直接の独立したか何か、 私はそれらを織り込んだ
それはとてもそれだけのようだ Larevelでは、すべてを置くことができ
お使いのコントローラロジックの ルートの内側PHPドット
匿名関数と 何度も何度も何度も
しかし、もちろん、そのファイル かなり大規模な取得することができます
そのルートには何ほとんどのPHPドット
君たちがやっているの あなたが名前を変更しているある
コントローラクラスのか メソッドの名前も
それが呼び出される必要があります
ここでそのように同じ考えても、 構文は少しですが、
異なるので、ここまでの通知
私は明らかに持っていることを 私自身のノードJSを実装
モジュールとモジュールだけです 付着するJavaスクリプトファイル
基本的に1条約 我々だけですぐに説明しますもの。
だから私のすべてを引き受ける インデックスの機能
と検索のために明らかに持っている このディレクトリに置かれて
そして今私はその全体を呼んでいる モジュールやパッケージやライブラリ、
あなたが好き として考えて、
ルート変数として ルートと呼ばれる。
だから、明らかにそこのルートにある ドットインデックスと呼ばれる方法であり、
インデックスと明らかにありま​​す 検索と呼ばれる別の方法
このルートのモジュール内 またはライブラリ
そして私はそれをルーティングするよ 私はすべて入れていないだけでように、
私の匿名のコード 私のアプリのファイルの内部。
それでは、ルート通知に行こう ただインデックスドットJSがあります
私はここで見れば、これはある 私は以前のもの大会
これはかなり任意である それはノード条約の。
あなたが実装する任意の時間 独自のノードJSライブラリ、
別名あなたは本質的なモジュール あなたは、任意のJavaスクリプトコードを記述
それは、このファイルになりたい 非常にきれいに砂をボックス化する
そのため、任意の変数を使用 衝突しないを選択する
誰か他の人のライブラリと、 変数やメソッドか何か
そのような何でも あなたが公開したい
ALA外の世界へ Javaのスクリプト内のパブリックメソッド
PHPや他の言語や あなたは内部のウンチする必要が
グローバルオブジェクトの 輸出と呼ばれるノードの著者。
そう輸出を行って、ドット 私はユーザーにさらすいインデックス
このモジュールと呼ばれる手法の この関数にマップインデックス
そのためには、匿名だ 右側
私は効果的にそれを与えている 左側の名前
世界にエクスポート
あなたが呼び出すことができるように ドットインデックスまたはドット検索。
私も持っていたのであれば明確にする 関数fooのようなもの
ここで何かをしたこと
その機能する 絶対に操作可能、
それがで呼び出すことができた このファイルが、誰
外の世界で 寒さは、これまでのfooを呼び出す
それが輸出されていないだから このドット表記を経由して。
だから、起こっていることがすべてです
すべてがうまくある あなたのために間隔をあけ名前。
私は、ノードを行うのであれば、エンドが発生 されているアプリのページを再読み込み
その私が、今検索した場合
バーの...機能的に これらのアプリケーションは同じです
それだけで一種の一歩だ クリーナーの実装に向けて、
確かにあなたが起動したとき より多くのコードを書く
それはこれらがすべてです。
明らかにしない、特に 洗練され、複雑な
しかし、基本的な出発点
あなたがどうなるかのために 最初のノードJSアプリ。
私たちは後にそうするつもりだ 今週またはこの週末
あなたが上に仕上げているように 我々は従うだろうPHPアプリケーション
非常に単純で、最大 ダイビングをチームのためのアプリケーション
へと基本的に PHPのためのウォームアップエクササイズ
これに基づいて 半ば学期の調査、
人々はお役に立ちましたか 演習を経由
かなり単純な何かをすることの
しかし、かなりあなたの前に導かれた 実際にはもっと何かに取り組む
自分でそうさせて頂きます それをフォローアップ
本質的になる 週間半原因
今少しオーバーラップから 意図的にPHPで。
そして上の任意の質問 ソケットIOの、表現
または残りの混乱 月曜日からかもしれません。
大丈夫そうに、できれば1 テイク·方法は、これまでで
これらのいくつかについてがあること はるかに少ない確かなもの
あなたがいるよりもオーバーヘッド に使用されている。
だから私は紹介させて 1の最後のアイデア、
これは非常に一般的 プログラミングパラダイム
のJavaスクリプトで jQueryの中に実際に存在する
最近のバージョンではそうかもしれない 実際にこの手法を見
しかし、それはかなりもの前に ノードJSの世界で一般的な、
それはティムの中で一般的です 自身の本棚ライブラリ
私たちは、これを再検討します より具体的な例
一瞬でソリューションです このようなコードに、
これはコードの代表である 私たちは、月曜日に見たので、ファイルを読む
このコンテキストでは本当ではありません 方法それは精神で似ています
FSに読み込むファイルに点在しますが、前提と これはいくつか行われていること
んアップ法 非常に似たような。
だから我々はいくつかに走った 一般的に、月曜日に問題
だから何をされている種類の...なぜ これは滑りやすい坂道で、
このコールバックパラダイム プログラミングジャバスクリプトの
とによるパラダイムをコールバックする 私は、この手法を意味する
あなたが戻ってないところ すぐに値
その可能性があるため、 サーバーをブロック
の他のことをやってから 便利な、代わりにコールバックする
シェイクでブザーのような 準備ができたらシャック
応答を返すため 引数として。
これは滑りやすい坂道です
どこに非常に迅速に なぜ迷惑になる？
うん。
>> [聞こえないセクション]
>>うん、最小限にはなります 読めない権利の種類
あなたは、これらすべてのコールを持っている場合 背中とあなたが付着している場合
良いスタイルにはなってきた かなり大規模なインデント
時間とケースの上に、私はこれを指して たとえば、並べ替えのスキムミルク場合
それは単に意味する介して JSONファイルを開いて印刷し、
それはあるようにと、まだ我々 ここではいくつかの8または10のラインを持っている
並べすでにある の意地悪インデント、
我々は試すキャッチを持っている
あなたが不慣れならある エラー処理技法
それはあなたが何かをしようとすることができます
かつ、その失敗した場合 あなたがうまくいけばそれをキャッチ
あなたのプログラム全体のない 終端が、そこ
親切なあなたのようなそんなに複雑 のを介してこれを考えなければならない
神は私達がのカップルを行うことを禁じる その他の非同期メソッド呼び出し、
事はすでに こっちになるだろう、
これは親切だと思うかもしれません 愚かな審美のが、この
なぜなら、コールバック パラダイムはそれほど一般的であり、少なくとも
ネイティブノードコードでこの 非常に迅速に退屈になって、
デバッグがハード、インデント ので、並べ替えることができます事項に開始
チェイス観光ダウン、それはだ だけではとても幸せな方法
プログラミングの。
だから、人々は何をしたか
間の様々なコンテキストノード内の 彼らはこれを単純化しようとしている、
インスタンスの約束のためのOS 思考の別の方法です
非同期コードの記述方法について それは、視覚的に何かを回す
バージョン1へのような このバージョン2。
私が主張し、これは もう一度だけでソートの混合
実際のコードと擬似間 コー​​ドは、これが代表的である
あなたは再実装する方法の その全く同じこと、
JSONファイルを開き、 それを解析し、それを印刷
何かを使用して 約束と呼ばれる
とキー構文的ディテールがある
連鎖があることを ここで起こって。
唯一のセミコロンことに注意してください
全部...実際によく 私が誤解しないように...してみましょう。
これは必ずしも必要ではありません しかし、ここでは一貫してみましょう、
ていることに注意してくださいセミコロン つまり、開口部を指し、
この全体の文の ダウンここにすべての方法です。
私はフォーマットされてきている間そう こちらの表情の種類
のような3つのステートメント、3 あなたが見るかもしれない文
Javaや他の言語で tryおよびcatchを持っている
と例外処理 より一般的には。
予告私はちょうどチェーン 各戻り値
これらの方法のまとめ。
だから、何が起こっているか、ファイルを読む これが存在している方法である場合には、
明らかにしようとします このファイルを読むには、
ドットはその後それでは非常にある 世界に与えられた一般的な名前
のための約束 実行するメソッド
以前のものは、成功した場合。
だから、一種の成功のようなものだ ハンドラ、それではJSONドットの解析、
よくJSONドット解析 ちょうど方法であり、
グローバルJSONライブラリ内 そしてそれは、明らかに付着
この場合のへ 約束モデル
私たちはちょうど私達ができると言う この男、その呼び出しを想定
そして彼はその後成功した場合 その後、この男を呼び出し、
それは実際には実行の場合には 単純にログデータを慰める
問題となっている。
だからここでエラーがある ハンドリング、私は一種だ気づく
非常に盲目的強化 この棚オフ
そしてちょうどこの呼ばれる 方法と、このメソッド
これまでに確認せず 問題の。
さてここで、これらの問題がある おそらく、これらの中で···取り扱い
キャッシュ文大きく異なる ライブラリは、さまざまな使用
規則が、中 この場合は、ソートされ
成功ハンドラは、キャッシュの エラーハンドラの一種である
私たちは壊れていませんでしたので、 このチェーンは、我々だけで使い続ける
一緒にリンクするドット表記 オリジナルのメソッド呼び出し
読み込んだファイルや関数の ソートされたエラーを呼び出し
バブルの彼らの方法 チェーンを通す
それらは実際に処理しているまで、 しようとするより方法きれいである
それごとに対処する 道のいまいましいステップ
そのため、あなたのコードは非常に すぐに非現実的なデータとなる。
このケースでは、ね 心がけていることを主張
と呼ばれるものをキャッチする 構文エラーは、本質的だ
より一般的なのサブクラス それがクレームが起こる場合は、エラーと
そうでなければ、無効なJSONだと それはより一般的なエラーだ場合には
我々は予想していなかったことを ただ、より一般的に言うことはできません
ファイルを参照してください。
今、これは単に意味する 代表的コードである
しかし、あなたがプログラムされてしまった場合 生のJavaスクリプトやJavaで
これは他の言語 基本的に手続き型コード、
これは、より伝統です catch文を試す
それは審美的だし、 約束した機能
またはあなたを与えるしようとしている あなたはそれを考えることができる
ちょうどその試して書き込み、など キャッチした後、持っていないキャッチ
毎週心配する シングル可能ポイント
ここでエラーかもしれない ハンドル...起こる、
あなたがでそれをすべて処理することができます 小ブロックの必要に応じて終了
コー​​ドの、そしてあなたのことができても、 エラーの区別
ここで、この場合、できる限り。
そう命名法あなたはよ 多分文献で参照
ティムは、いくつかを提示したよう このようなものがあまりにもあるの
その理想的にしたい 解決することを約束
そして約束の手段を解決 それは最終的に、いわば戻す
はなく、伝統的な方法で 価値なので、成功のどちらか
のためには、基本的に失敗します。
大丈夫か質問して、 それが十分であることを意味するものではないだ
約束への暴露のための ちょうどメンタルモデル
コー​​ドあなたのために 見始めるでしょう。