NodeJS とは何か

Node.js は、Chrome の V8 JavaScript エンジン上に構築されたオープン ソースのクロスプラットフォームのサーバー側 JavaScript ランタイム環境であり、Ryan Dahl によって作成され、2009 年にリリースされました。

Node.js は Windows 上で動作しますか。

はい。 Windows では、Node.js でアプリを開発するための 2 つの異なる環境がサポートされています。

使用する環境を決定する方法については、「Windows または Linux 用 Windows サブシステムのどちらにインストールする必要がありますか」を参照してください。

NodeJS の用途

Node.js は、主に高速でスケーラブルな Web アプリケーションを構築するために使用されます。 イベントドリブンの非ブロッキング I/O モデルを使用して、軽量化と効率性を実現します。 これは、分散されたデバイス間で実行されるデータを集中的に使用するリアルタイム アプリケーションのための優れたフレームワークです。 Node.js で作成するものの例をいくつか挙げます。

  • 単一ページのアプリ (SPA) :Web アプリの中にはブラウザーの中で動作し、新しいデータを取得する目的でページを使用するたびにページを再読み込みする必要がないものがあります。 SPA の例としては、ソーシャル ネットワーク アプリ、メール アプリ、地図アプリ、オンライン テキスト、描画ツールなどがあります。
  • リアルタイム アプリ (RTA) :Web アプリの中には、更新がないかユーザー (またはソフトウェア) がソースを定期的に確認しなくても、作成者が公開した直後にユーザーが情報を受け取れるものがあります。 RTA の例としては、インスタント メッセージング アプリ、チャット ルーム、ブラウザーでプレイできるオンライン マルチプレイヤー ゲーム、オンライン コラボレーション ドキュメント、コミュニティ ストレージ、ビデオ会議アプリなどがあります。
  • データ ストリーミング アプリ:アプリ (またはサービス) の中には、到着した (または作成された) データまたはコンテンツを送信しながら接続を維持し、必要に応じてさらなるデータ、コンテンツ、コンポーネントを引き続きダウンロードするものがあります。 例としては、動画ストリーム配信アプリや音声ストリーム配信アプリなどがあります。
  • REST API:このインターフェイスは、誰かの Web アプリでやりとりするためのデータを提供します。 たとえば、Calendar API サービスから、誰かのローカル イベント Web サイトで使用されうるコンサート会場の日時が提供されることがあります。
  • サーバー側でレンダリングされるアプリ (SSR) :この Web アプリは、クライアント (ブラウザーまたはフロントエンド) とサーバー (バックエンド) の両方で実行できて、動的なページはコンテンツが既知であればそれを表示し (HTML を生成し)、既知ではないコンテンツはそれが利用可能になった瞬間に取得できます。 "isomorphic" または "universal" アプリケーションと呼ばれることがあります。 SSR では SPA メソッドが活用されます。このメソッドでは、使用するたびに再読み込みする必要がありません。 ただし、SSR には、ユーザーにとって重要かどうかわからない長所がいくつかあります。たとえば、サイトのコンテンツを Google の検索結果に表示することや、アプリのリンクが Twitter や Facebook などのソーシャル メディアに投稿されたとき、プレビュー画像を提供することなどです。 潜在的な欠点は、Node.js サーバーを常に実行する必要があることです。 たとえば、ユーザーが検索結果に表示させたいイベントやソーシャルメディアに対応しているソーシャル ネットワーキング アプリは SSR の利点を活用できるかもしれませんが、メール アプリは SPA でも問題ないでしょう。 SPA ではないがサーバー側でレンダリングするアプリを実行することもできます。これはたとえば、WordPress ブログのようなものです。 ご覧のとおり、複雑になる可能性があるため、何が重要なのかを判断する必要があります。
  • コマンド ライン ツール:繰り返し作業を自動化し、広範囲の Node.js エコシステム全体にツールを配布できます。 コマンド ライン ツールの例としては cURL があります。これはクライアント URL という意味で、インターネット URL からコンテンツをダウンロードする目的で使用されます。 cURL は多くの場合、Node.js などをインストールするために使用されます。今回のような Node.js バージョン マネージャーもあります。
  • ハードウェア プログラミング:Web アプリほどの人気はありませんが、Node.js は、センサー、ビーコン、トランスミッター、モーター、あるいは大量のデータを生成する何かからデータを収集するなど、IoT 用途で人気が上昇しています。 Node.js ではデータを収集し、そのデータを分析し、デバイスとサーバーの間で通信をやりとりし、分析に基づいて措置をとることができます。 NPM には、Arduino コントローラー、raspberry pi、Intel IoT Edison、さまざまなセンサー、Bluetooth デバイスのためのパッケージが 80 以上含まれています。

次のステップ