環境の変化は、機会と課題が同時に来ることで、大きな技術的な飛躍をもたらしました。私はJSを学んでいなかったので、棚に置くためにアヒルを運転して一緒に学ぶ必要がありました。 (><)
1。最初に本を読んでください
最初は「詳細で理解しやすいNode.js」を読みましたが、この本には読んだ後の特定の基盤が必要であることに気付きました。 41ページの「Node to Node」をオンラインで検索し、自分でWebアプリケーションを構築することを学びました。そして、達成感をリフレッシュした後、私は「The Great Node.js」を読みました。今、私は「詳細で理解しやすいnode.js」を読んだ後、本をもう一度読むつもりです。
2。gitでルーチンを実行する環境を構築します(3つのエラーが報告されます)
公式ウェブサイトでMSIをダウンロードした後、次に進みます。コマンドnpmインストールを入力すると、エラー「npm err!not not wund:git」が報告されます。その理由は、新しいコンピューターがGitに従わないからです。
外部依存関係パッケージをインストールするとき、エラー「GYP ERR!Configure Error」が報告され、その理由はPython環境がそうではなかったためです。さらに、この依存関係パッケージは、低いバージョンにのみインストールできます。最後のエラーは「MSBUILD:ERROR MSB3428:Visual C ++コンポーネント」VCBUILD.EXE "のロードに失敗しました。.NETフレームワーク2.0 SDKおよびMVS2005をインストールした後もエラーが報告されました。
3。最初のWebアプリケーション
「Hello World」を実行した後、完全にノードに基づいたWebアプリケーションの書き込みを開始します。まず、サーバーモジュールを起動する必要があります。 HTTPモジュールのcreateServer関数によって返されるオブジェクトには、リスニング([ポート])メソッドリスニングポートがあります。この関数のパラメーターは奇妙であり、関数定義です。 JavaScriptでは、関数は別の関数としてパラメーターを受信でき、パラメーター関数は匿名関数と呼ばれます。この方法を使用する理由は、ノードがイベント駆動型のコールバックを使用しているためです。サーバーが単一のプロセスでリクエストを受信すると、この関数を呼び出してリクエストを処理します。対応するイベントが発生すると、CreateServer関数はこの関数を前後に呼び出します。
HTTPリクエストを受信した後、リクエストを処理する必要があります。まず、さまざまなURLを抽象的に提案し、パラメーターをリクエストに取得および投稿します。ここでは、2つの内部モジュールURL(URLの解析)とクエリ文字列(クエリ文字列の処理)を使用します。依存関係噴射からルーターモジュールを追加します。次に、ルーティングが改善される前に、リクエストを処理するモジュールを完了する必要があります。すべての要求は、最初にモジュール間でハンドルを介して渡され、ハンドラーが応答できます。一般的に、リクエストハンドラーは、onrequest関数を介してユーザーに表示したい情報を直接返す(return())します。ただし、ブロッキング操作を実行する場合は非常に時間がかかる可能性があるため、非ブロッキング操作を使用する必要があります。処理に時間がかかる他の関数に引数として関数を渡すことにより、コールバックを使用します。コンテンツをサーバーに渡すのと比較して、今回はサーバーをコンテンツに「渡す」方法を使用します。これは、応答オブジェクト(サーバーのコールバック関数onrequest()から関数パラメーターとしてルーティングを介してハンドラーに渡すことです。これにより、ハンドラーはオブジェクト上の関数を呼び出すことができます。
次に、処理ステップを実行し、フォームに写真をアップロードします。ここでは、Fromidableの外部依存関係パッケージを使用して写真を受け取ります。このモジュールは、フォームの処理とファイルのアップロードに使用されます。最初にvar form = new Formatable.incomingform()を使用します。フォームオブジェクトを取得します。このオブジェクトの解析方法は、フォームデータを解析および処理できます。ファイルを保存するだけです。 FSモジュールは、ファイルを保存するために使用されます。メソッドの名前を変更し、保存された場所を指定し、同期メソッドramamesync()を使用して、ファイルの保存動作の前に画像動作を表示できます。
写真を表示するのは非常に簡単です。 FSのReadFileメソッドを介してファイルを読み取ることができます。 respons.write(file、 "binary")をコールバック関数に使用して、ブラウザに画像を表示できます。
要約するには、このルーチンを通じて、単一スレッド、非同期、イベント駆動型など、node.jsの機能について学びました。これらの抽象的な概念の一部は、ルーチンを通じて表示されますが、まだ深く理解する必要があります。ルーチンを介して学習するということは、情報がわからないときに情報を確認する必要があることを意味します。この学習方法は、入力者出力タイプの優れた方法でもあります。