NodeJS とは何か

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

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

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

NodeJS の用途

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

  • シングルページ アプリ (SPA): ブラウザーの中で動作する Web アプリです。新しいデータを取得するためにページを使用するたびに再読み込みする必要はありません。 SPA の例としては、ソーシャル ネットワーク アプリ、メール アプリ、地図アプリ、オンライン テキスト、描画ツールなどがあります。
  • リアルタイム アプリ (RTA):更新がないかユーザー (またはソフトウェア) がソースを定期的に確認しなくても、作成者が公開した直後にユーザーが情報を受け取れるようにする Web アプリです。 RTA の例としては、インスタント メッセージング アプリ、チャット ルーム、ブラウザーでプレイできるオンライン マルチプレイヤー ゲーム、オンライン コラボレーション ドキュメント、コミュニティ ストレージ、ビデオ会議アプリなどがあります。
  • データ ストリーミング アプリ: 接続を維持しながら、到着した (または作成された) データまたはコンテンツを送信し、必要に応じてさらなるデータ、コンテンツ、コンポーネントを引き続きダウンロードするアプリ (またはサービス) です。 例としては、動画ストリーム配信アプリや音声ストリーム配信アプリなどがあります。
  • REST API: 他のユーザーの Web アプリでやり取りするためのデータを提供するインターフェイスです。 たとえば、Calendar API サービスから、誰かのローカル イベント Web サイトで使用されうるコンサート会場の日時が提供されることがあります。
  • サーバー側でレンダリングされるアプリ (SSR): クライアント (ブラウザーまたはフロントエンド) とサーバー (バックエンド) の両方で実行できる Web アプリです。動的なページでは、コンテンツが既知であればそれを表示し (HTML を生成し)、既知ではないコンテンツはそれが利用可能になった瞬間に取得できます。 これらはよく"同型"または"ユニバーサル"アプリケーションと呼ばれます。 SSR では SPA メソッドが活用されます。このメソッドでは、使用するたびに再読み込みする必要がありません。 ただし、SSR には、ユーザーにとって重要かどうかわからない長所がいくつかあります。たとえば、サイトのコンテンツを Google の検索結果に表示することや、アプリのリンクが X や 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 以上含まれています。

次のステップ