v6新機能と改善点Node.jsアーキテクチャと内部動作Node.jsアプリケーションのセキュリティ保護Node.jsアプリケーションのデバッグNode.jsエラー管理Node.jsデザインの基本Node.jsでのAPIの作成Node.jsでのPOSTリクエストの処理Node.JSでのWebSocketの使用node.jsでのWindows認証node.jsでのモジュールのエクスポートとインポートNode.JSとMongoDB。APIストリームの使用ダウンタイムなしでNode.jsアプリケーションを配備する。v6新機能と改善点Node.jsアーキテクチャと内部動作Node.jsアプリケーションのセキュリティ保護Node.jsアプリケーションのデバッグNode.jsエラー管理Node.jsデザインの基本Node.jsでのAPIの作成Node.jsでのPOSTリクエストの処理Node.JSでのWebSocketの使用node.jsでのWindows認証node.jsでのモジュールのエクスポートとインポートNode.JSとMongoDB。APIストリームの使用ダウンタイムなしでNode.jsアプリケーションを配備する。Oフレームワークです。これは、クライアント側とサーバー側の両方でJavaScriptを実行できるため、コードの再利用性とコンテキスト切り替えの欠如の恩恵を受けるアプリケーションの開発に使用されます。オープンソースとクロスプラットフォームです。Node.jsアプリケーションは純粋なJavaScriptで書かれており、Windows、LinuxなどのNode.js環境内で実行できます。HTTPサーバーまず、ご使用のプラットフォーム用のNode.jsをインストールします。ブラウザに送信します。ポート1337を使用する代わりに、他のサービスで現在使用されていない任意のポート番号を使用できます。(Node.jsのソースに含まれ、追加のリソースのインストールを必要としないモジュール)です。メソッドを使用してHTTPサーバーを作成する機能を提供します。アプリケーションを作成するには、次のJavaScriptコードを含むファイルを作成します。on任意のファイル名でファイルを保存します。いう名前を付けると、ファイルがあるディレクトリに移動して次のコマンドを実行することで、アプリケーションを実行できます。localhost:1337またはhttp://127.0.0.1:1337でアクセスできます。以下のスクリーンショットに示すように、上部に「Hello、World!」テキストが表示された簡単なWebページが表示されます。編集可能なオンラインの例。++で書かれています)です。ノードの機能を拡張するために多数のライブラリが利用可能ですが、エンジンには基本機能を実装する一連のコアモジュールが付属しています。モジュールは不変をテストするために使用することができるアサーションテストの簡単なセットを提供します。導入する前は、JavaScript言語にはバイナリデータのストリームを読み込んだり操作したりする仕組みがありませんでした。APIの一部として導入され、TCPストリームやファイルシステム操作などのコンテキストでオクテットストリームとやり取りできるようにしました。関数を使用してNode.jsにロードでき、通常のNode.jsモジュールと同じように使用できます。++ライブラリとの間のインタフェースを提供するために使用されます。モジュールは、popen(3)に類似しているが同一ではない方法で子プロセスを生成する機能を提供します。クラスタNode.jsの単一のインスタンスは、単一のスレッドで実行されます。マルチコアシステムを利用するには、負荷を処理するNode.jsプロセスのクラスタを起動する必要があることがあります。クラスタモジュールを使用すると、すべてのサーバーポートを共有する子プロセスを簡単に作成できます。モジュールは、ウェブブラウザによって提供されるJavaScriptコンソール機構と同様の単純なデバッグコンソールを提供する。ラッパーセットを含む暗号機能を提供します。deprecated_apis(a)APIの使用が危険であると考えられているか、(b)改良された代替APIが利用可能になっている、(c)将来のメジャーリリースでAPIへの変更の破棄が予想される場合、Node.jsはAPIを非難することがあります。モジュールには、2つの異なるカテゴリに属する​​関数が含まれています。基本的なオペレーティングシステム機能を使用して名前解決を実行する機能で、必ずしもネットワーク通信を実行する必要はありません。常にネットワークを使用してDNSクエリを実行する関数。モジュール内のすべての関数が含まれます。ドメインこのモジュールは保留中です。置換APIが完成すると、このモジュールは完全に廃止されます。ほとんどのエンドユーザーは、このモジュールを使用する必要はありません。ドメインが提供する機能を絶対に必要とするユーザーは、当面はその機能に頼っているかもしれませんが、将来は別のソリューションに移行する必要があります。イベントNode.jsコアAPIの多くは、特定の種類のオブジェクト(「エミッタ」と呼ばれます)が定期的に名前付きイベントを生成し、Functionオブジェクト(「リスナー」)を呼び出すような慣用的な非同期イベント駆動アーキテクチャをベースに構築されています。Oは、標準のPOSIX関数に関する単純なラッパーによって提供されます。すべてのメソッドは、非同期形式と同期形式を持ちます。httpNode.jsのHTTPインタフェースは、従来使用が困難であったプロトコルの多くの機能をサポートするように設計されています。チャンクエンコードされた大規模なメッセージ。このインターフェースは、リクエストやレスポンス全体をバッファリングしないように注意しています。ユーザーはデータをストリーミングすることができます。SSL上のHTTPプロトコルです。Node.jsでは、これは別のモジュールとして実装されています。モジュールNode.jsには単純なモジュールローディングシステムがあります。Node.jsでは、ファイルとモジュールは1対1で対応しています(各ファイルは個別のモジュールとして扱われます)。モジュールは、非同期ネットワークラッパーを提供します。サーバーとクライアントの両方を作成するための関数(ストリームと呼ばれます)が含まれています。含めることができますrequire('net');。モジュールは、多くのオペレーティングシステム関連のユーティリティメソッドを提供します。モジュールは、ファイルおよびディレクトリパスを操作するためのユーティリティを提供します。punycodeNode.jsにバンドルされているpunycodeモジュールのバージョンは廃止予定です。モジュールは、URLクエリ文字列の解析と書式設定のためのユーティリティを提供します。)から一度に1行ずつデータを読み込むためのインターフェイスを提供します。モジュールは、スタンドアロン・プログラムとしても、他のアプリケーションでも使用可能なRead-Eval-Print-Loop(REPL)実装を提供します。ストリームストリームは、Node.jsのストリーミングデータを操作するための抽象的なインターフェイスです。モジュールは、ストリームインターフェイスを実装するオブジェクトを簡単に構築できる基本APIを提供します。Node.jsによって提供される多くのストリームオブジェクトがあります。リクエストは両方ともストリームインスタンスです。オブジェクトをストリングにデコードするためのAPIを提供します。モジュールは、ある将来の期間に呼び出されるスケジューリング関数用のグローバルAPIを公開します。Node.js内のタイマー関数は、Webブラウザーで提供されるタイマーAPIと同様のAPIを実装しますが、Node.jsイベントループの周りに構築された別の内部実装を使用します。Layer)プロトコルの実装を提供します。トレーストレースイベントは、V8、ノードコア、およびユーザー空間コードによって生成されたトレース情報を集中管理するメカニズムを提供します。フラグを渡すと、トレースを有効にすることができます。ほとんどの場合、このモジュールを直接使用する必要はありません。モジュールは、UDPデータグラムソケットの実装を提供します。モジュールは、URL解決と解析のためのユーティリティを提供します。モジュールは、主にNode.js自身の内部APIのニーズをサポートするように設計されています。ユーティリティの多くは、アプリケーション開発者やモジュール開発者にとっても有用です。モジュールは、Node.jsバイナリに組み込まれているV8のバージョンに特有のAPIを公開しています。:APIと実装はいつでも変更されることがあります。モジュールは、V8仮想マシンのコンテキスト内でコードをコンパイルおよび実行するためのAPIを提供します。JavaScriptコードはすぐにコンパイルして実行することも、コンパイルして保存して後で実行することもできます。:vmモジュールはセキュリティ機構ではありません。信頼できないコードの実行には使用しないでください。Inflateを使用して実装された圧縮機能を提供します。NodeJSアプリケーションのデバッグノードインスペクタを使用することができます。npm経由でインストールするには、次のコマンドを実行します。app.jsGithubのリポジトリはhttps://github.com/node-inspector/node-inspectorにあります。ネイティブにデバッグするまた、次のようにnode.jsをネイティブにデバッグすることもできます。your-script.jsデバッガを目的のコード行で正確にブレークするには、次のようにします。debugger;詳細はこちらをご覧ください。8では、次のコマンドを使用します。開き、Nodeスクリプトを選択してChromeのDevToolsのデバッグ環境を取得します。環境変数が提供されます。ポート番号を変更すると、アプリケーションにアクセスできます。オフラインポート番号です。World基本ルーティングノードを持つHTTPサーバーを作成する方法を理解したら、ユーザーがナビゲートしたパスに基づいて物事を「行う」方法を理解することが重要です。この現象を「ルーティング」といいます。チェックし、新しいファイルで応答する関数を呼び出すことです。"ルート"を定義し続けると、大規模なコールバック関数が1つだけ発生することになります。そのような巨大な混乱を望んでいないので、これをクリーンアップできるかどうかを見てみましょう。response.end(http.STATUS_CODES[404]);}).listen(1337);今すぐあなたのウェブサイトをナビゲートしようとするたびに、あなたのルートにそのパスの存在を確認し、それぞれの機能を呼び出します。Found)で応答します。APIを使用したルーティングは非常に簡単です。WorldコマンドラインNode.jsは、コマンドラインユーティリティの作成にも使用できます。以下の例は、コマンドラインから最初の引数を読み込み、Helloメッセージを出力します。このコードをUnixシステムで実行するには:新しいファイルを作成し、以下のコードを貼り付けます。ファイル名は無関係です。"とも呼ばれるREPL(Read-Eval-Print-Loop)を開始します。World次の例では、Expressを使用してポート3000でリッスンするHTTPサーバーを作成します。このサーバーは「Hello、World!」と応答します。APIを作成するのに便利な一般的なWebフレームワークです。新しいフォルダを作成します。使用してExpressモジュールをインストールします。このドキュメントを参照してください。port);});コマンドラインから次のコマンドを実行します。Webサーバーを起動して実行する方法システムにnode.jsがインストールされたら、以下の手順に従って、HTTPとHTTPSの両方をサポートしている基本Webサーバーを稼働させることができます。手順1:認証局を構築するキーと証明書を保存するフォルダを作成します。https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/ca.cnfこの構成を使用して新しい認証局を作成します。ファイルを取得して設定ショートカットとして使用します。https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/server.cnf次の設定を使用して証明書署名要求を生成します。cert.pem手順2:証明書をルート証明書としてインストールする証明書をルート証明書のフォルダにコピーします。ファイルを作成します。Node.jsのHTTPSサーバーの最小限の設定は、次のようになります。app).listen(4433);httpリクエストをサポートしたい場合は、この小さな変更を行う必要があります。実行しserver.js。server.jsNode.jsのインストールと実行まず、開発用コンピュータにNode.jsをインストールします。ダウンロードページに移動し、インストーラをダウンロード/実行します。ダウンロードページに移動し、インストーラをダウンロード/実行します。HomebrewはMacintosh向けのコマンドラインパッケージマネージャであり、詳細はHomebrewのWebサイトを参照してください。コマンドラインのインストールページでディストリビューションの指示に従ってください。ノードappのソースコードのファイル名です。接尾辞を含める必要はありません。UNIXベースのオペレーティングシステムでは、ノードプログラムを端末スクリプトとして実行することができます。このファイルも実行可能ファイルとして設定する必要があります。使って行うことができます。スクリプトはコマンドラインから直接実行できるようになりました。TLSソケット:サーバーとクライアントこれと通常のTCP接続との主な違いは、プライベートキーとオプションオブジェクトに設定する必要があるパブリック証明書だけです。キーと証明書を作成する方法このセキュリティプロセスの第一歩は、プライベートキーの作成です。この秘密鍵は何ですか?基本的には、情報の暗号化に使用されるランダムノイズのセットです。理論的には、1つの鍵を作成し、それを使って必要なものを暗号化することができます。特定のものに対して異なるキーを持つことがベストプラクティスです。誰かがあなたの秘密鍵を盗むと、それはあなたの家の鍵を盗むことに似ています。あなたが車、ガレージ、オフィスなどをロックするために同じキーを使用した場合を想像してください。1024秘密鍵を取得したら、証明書署名要求(CSR)を作成することができます。この要求は、秘密鍵が秘密の機関に署名されていることを要求しています。あなたの会社に関連する情報を入力する必要があります。この情報は署名当局に表示され、あなたの確認に使用されます。私たちの場合、あなたが入力したものは問題ではありません。次のステップでは、証明書に署名するつもりであるからです。csr.pemペーパーワークを完成させたら、我々はクールな署名機関であるとふるまうべき時です。public-cert.pemプライベートキーとパブリック証明書を取得したので、2つのNodeJSアプリ間の安全な接続を確立できます。サンプルコードでわかるように、非常に単純なプロセスです。重要!私たちは公然の証明書を作成して以来、まったく正直なところ、証明書は無価値です。NodeJSサーバーはデフォルトでこのような証明書を信頼しません。そのため、次のオプションrejectUnauthorized:falseを使用して証明書を実際に信頼するように伝える必要があります。:本番環境ではこの変数をtrueに設定しないでください。