ホームページ >ウェブフロントエンド >jsチュートリアル >素晴らしいnode.js読書ノート:node.js_node.jsの機能
環境の変化は大きな技術的進歩をもたらし、機会と課題を同時にもたらしました。 jsはまだ学習していないので、仕方なく棚に上げて一緒に学習しました。 (>﹏<)
1. まず読んでください
「シンプルで奥深い言語で学ぶNode.js入門」は最初から迷うことなく読みましたが、読み終わった後、この本にはある程度の基礎レベルが必要であることが分かりました。インターネットを検索して 41 ページの「Node 入門」を見つけて、Web アプリケーションの構築方法を学びました。そして達成感をリフレッシュした後、「The Amazing Node.js」を読みました。この本を読んだあとに「node.js徹底入門」を読むつもりです。
2. 環境をセットアップし、git でルーチンを実行します (エラーが 3 回報告されました)
公式サイトからmsiをダウンロードしたら次へお進みください。コマンド npm install を入力すると、「npm ERR! not found: git」というエラーが報告されます。その理由は、新しいコンピュータが git に従っていないためです。
外部の依存関係パッケージをインストールすると、「gyp ERR! 構成エラー」というエラーが報告されます。これは、Python 環境が存在しないためです。そして、この依存関係パッケージは、下位バージョンにのみインストールできます。最後に報告されたエラーは、「MSBUILD: エラー MSB3428: Visual C コンポーネント "VCBuild.exe" のロードに失敗しました」でした。このエラーは、.net Framework 2.0 SDK および mvs2005 をインストールした後も報告されました。きっぱり諦めた。
3. 最初の Web アプリケーション
「Hello World」を実行した後、完全に Node.js に基づいた Web アプリケーションの作成を開始します。まず、サーバー モジュールを起動する必要があります。http モジュールの createServer 関数によって返されるオブジェクトには、ポートをリッスンするための listen([PORT]) メソッドがあります。この関数のパラメータは非常に奇妙で、関数定義です。 JavaScript では、関数が別の関数としてパラメータを受け取ることができます。パラメータ関数は匿名関数と呼ばれます。このメソッドを使用する理由は、ノードがイベント駆動型のコールバックを使用するためです。サーバーが単一プロセスでリクエストを受信すると、この関数を呼び出してリクエストを処理します。対応するイベントが発生すると、createServer 関数はこの関数を呼び出してコールバックします。
http リクエストの受信が完了したら、リクエストを処理します。まず、さまざまな URL と GET パラメータと POST パラメータを抽象的に提案します。ここでは、URL (URL 解析) と Query String (クエリ文字列処理) の 2 つの内部モジュールが使用されます。そして依存関係注入を通じてルーターモジュールを追加します。次に、ルーティングを完了するには、リクエストを処理するモジュールを完成させる必要があります。すべてのリクエストは、最初にオブジェクト (ハンドル) を介してモジュール間で渡され、ハンドラーが応答できます。一般に、リクエスト ハンドラーは、onRequest 関数を通じてユーザーに表示したい情報を直接返します (return())。ただし、ブロッキング操作を実行すると非常に時間がかかるため、非ブロッキング操作を使用する必要があります。コールバックを使用するには、処理に時間がかかる他の関数に関数を引数として渡します。今回は、コンテンツをサーバーに渡すのではなく、サーバーからコンテンツを「渡し」ます。つまり、応答オブジェクト (サーバーのコールバック関数 onRequest() から取得) をルーティングを通じて関数パラメーターとしてハンドラーに渡します。このようにして、ハンドラーはオブジェクトの関数を呼び出すことができます。
次に、処理ステップに進み、フォームを通じて画像をアップロードします。ここでは、画像を受け取るために外部依存パッケージ formidable が使用されます。このモジュールは、フォームの処理とファイルのアップロードに使用されます。まず var form = new formidable.IncomingForm(); を使用してフォーム オブジェクトを取得します。このオブジェクトの parse メソッドは、フォーム データを解析して処理できます。ファイルを保存するだけです。 fs モジュールはファイルの保存に使用されます。 rename メソッドで保存場所を指定し、同期メソッド renameSync() を使用して、ファイルの保存動作を画像の表示動作よりも優先させます。
画像の表示は非常に簡単です。 fs の readFile メソッドを通じてファイルを読み取り、そのコールバック関数で response.write(file, "binary") を使用してブラウザに画像を表示します。
要約: このルーチンを通じて、シングルスレッド、非同期、イベント駆動など、node.js の機能について学びました。これらの抽象的な概念の一部はルーチンを通じても示されていますが、深く理解する必要があります。ルーチンを通して学習するということは、理解できないときに情報を調べる必要があるということを意味し、この学習方法も優れたインプット・パーソン・アウトプット法です。