Node.jsを理解するのはとても簡単です

Node.jsを理解するのはとても簡単です

Node.js の公式紹介

Node.js 公式サイトのホームページには、Node.js について説明する文章があります。

Node.js® は、Chrome の V8 JavaScript エンジン上に構築された JavaScript ランタイムです。Node.js は、軽量で効率的なイベント駆動型の非ブロッキング I/O モデルを使用します。

翻訳すると次のようになります:

Node.js は、Chrome の V8 JavaScript エンジンをベースにした JavaScript ランタイムです。 Node.js はイベント駆動型の非ブロッキング I/O モデルを採用しており、軽量かつ効率的です。

上記の文の最初の文では Node.js とは何かを説明し、2 番目の文では Node.js の特徴について説明しています。

この公式声明の具体的な意味を理解するには、JavaScript 言語から始める必要があります。

Node.jsのコア開発言語

ここでは、JavaScript 言語の基本的な構文と基本的な使用法を習得していることを前提としています。まだ JavaScript を習得していない場合は、まず JavaScript 言語を学習する必要があります。

JavaScript 言語を習得した人なら、JavaScript が Web ページとユーザー間のやり取りを可能にするブラウザ用のスクリプト言語であることを知っているはずです。

インタラクションとは何ですか?たとえば、ユーザーが Web ページでユーザー名またはパスワードを入力する場合、このユーザー入力動作はインタラクションと呼ばれます。あるいは、ユーザーが Web ページ上のボタンをクリックするなどの場合も、インタラクションと呼ぶことができます。

JavaScript 言語が Web ページとユーザー間のインタラクションを実現できるのは、主にイベントを通じてです。たとえば、ユーザー入力イベント、ボタンクリックイベントなどです。

次に、ユーザーがボタンをクリックする動作を例に、JavaScript 言語がそれをどのように処理するかを確認します。

上記の分析チャートから、次のことが明確にわかります。

  1. ユーザーは Web ページ上のボタンをクリックして JavaScript ロジックを実行します。
  2. JavaScript ロジックは、イベントのキャプチャ、イベントのトリガー、イベントのバブリングという 3 つの段階を経ます。
  3. JavaScript ロジックが実行されると、結果が Web ページに返されます。
  4. その結果に基づいて、Web ページがユーザーに表示されます。

このような小さな事例を通して、JavaScript 言語が主にイベント駆動型に依存して Web ページとユーザー間のやり取りを処理していることがわかります。

ウェブ上の JavaScript と Node.js の違い

現在、ほぼすべてのブラウザが JavaScript 言語をサポートしています。これは、JavaScript エンジンがブラウザに統合されているためです。

多くのブラウザの中で、Chrome ブラウザは比較的パフォーマンスが優れており、Chrome ブラウザに統合されている V8 JavaScript エンジンはオープンソースです。

Node.js は、Chrome ブラウザのオープンソース V8 JavaScript エンジンを使用します。では、Web ページで JavaScript を使用することと、Node.js で JavaScript を使用することの違いは何でしょうか?これは以下の図から理解できます。

上の図から、Node.js はブラウザと比較して WebKit カーネルや HTML 関連の UI テクノロジを提供していないことがはっきりとわかります。つまり、Node.js は JavaScript 言語のみを提供します。

なぜこんなことをするのですか?実際、Node.js の作者の当初のアイデアは、軽量で効率的なサーバーを設計することでした。

サーバーとは何か

では、サーバーとは何でしょうか? Web アプリケーションを人間に例えると、サーバーはその人の脳です。

上の図から、人々が互いにコミュニケーションをとるとき、基本的に次の手順を踏むことがわかります。

  1. 他の人が私とコミュニケーションをとるとき、私はそれを人間の感覚を通して受け取ります。
  2. 感覚は情報を脳に伝えます。
  3. 脳は情報を受け取ると、それを処理して結果を返します。
  4. そして、自分の感覚を通してコミュニケーションを取っている相手にフィードバックを与えます。

このプロセスを通じて、他の人は感覚を通じて私と直接コミュニケーションを取っており、脳がどのように機能するかを知らず、また脳がどのように機能するかを気にもしていないことがわかります。

WEB アプリケーションは人間に似ています。ユーザーは Web ページと対話し、Web ページは情報をサーバーに渡します。サーバーは情報を受信し、処理して応答し、最終的に Web ページが結果をユーザーに対して表示します。

ユーザーとしては、サーバーがどのように動作するかを気にしておらず、サーバーの存在すら感じないかもしれません。ただし、開発者として完全な WEB アプリケーションを開発したい場合は、サーバーの論理コアが必要になります。

これからはユーザー思考から開発者思考へとシフトしていく必要があります。これまで使用していた WEB アプリケーションを開発の考え方で再検討すると、いくつかの違いが見つかります。

考え方を変えることが大切です!とても重要です!とても重要です!重要なことは3回言うべきです。

Node.jsの簡単な理解

そうは言っても、Node.js とは何かを簡単にまとめることができます。

Node.js は、Chrome ブラウザの V8 JavaScript エンジンをベースにしたサーバー テクノロジーであり、JavaScript をコア開発言語として使用しています。

Node.js を使用して WEB アプリケーションを開発するとどうなるでしょうか?

JavaScript ロジックはイベント駆動型なので、Node.js がイベント駆動型であることは理解しにくいことではありません。

Node.js をより深く理解し、習得したい場合は、まず JavaScript 言語でのイベント処理を復習する必要があります。

Node.js は、Chrome ブラウザの V8 エンジンをベースとしていることに加えて、いくつかの機能を簡単に実装できる一連のモジュールも提供します。たとえば、クライアント要求の処理、ファイル処理、その他の操作などです。

Node.js を学ぶときは、主に Node.js が提供するモジュールの内容を学習します。

上記はNode.jsとは何かを理解するための詳細な内容です。Node.jsについてさらに詳しく知りたい場合は、123WORDPRESS.COMの他の関連記事もご覧ください。

以下もご興味があるかもしれません:
  • Node.js http モジュールの使用
  • Nodejs 探索: シングルスレッドの高並行性の原理を深く理解する
  • node.js グローバル変数の具体的な使用法
  • Node8 における AsyncHooks 非同期ライフサイクル
  • Nodejs エラー処理プロセス記録
  • Expressを使用してプロジェクトを自動的にビルドするNode.jsのプロセス全体
  • ノードでシェルスクリプトを使用する方法
  • Node.js の TCP 接続処理のコア プロセス
  • Nodejs 配列キューと forEach アプリケーションの詳細な説明
  • Node.jsとDenoの比較

<<:  Ubuntu MySQL バージョンが 5.7 にアップグレードされました

>>:  Apache、Tomcat、Nginx サーバーの詳細な理解と比較分析

推薦する

Nginx リバース プロキシと負荷分散の実践

リバースプロキシリバースプロキシとは、プロキシサーバーを介してユーザーのアクセス要求を受信し、ユーザ...

html-webpack-plugin の使用方法の詳細な説明

最近、React プロジェクトで初めてhtml-webapck-pluginプラグインを使用しました...

nginx.conf のルートディレクトリ設定の詳細な説明

nginx.conf を構成するときには常に何らかの問題が発生します。ここでは、よくある問題とその解...

vue.js パッケージ化プロジェクトの後の空白ページの解決策

Vueに触れたばかりのパートナーの多くは、開発環境ではVueプロジェクトは正常であるが、パッケージ化...

選択ドロップダウンボックスの値をIDに渡してコードを実装する方法

完全なコードは次のとおりです。 HTMLコード:コードをコピーコードは次のとおりです。 <!-...

Chromeブラウザの自動パスワード保存プロンプト機能を無効にする方法

注: Web 開発では、フォームに autocomplete="off" を追加...

Docker の NFS-Ganesha イメージを使用して NFS サーバーを構築する詳細なプロセス

目次1. NFS-Ganeshaの紹介2. NFS-Ganeshaの設定3. NFS-Ganesha...

Linux のハードリンクとソフトリンクの区別

Linux には、2 種類のファイル接続があります。1 つは Windows のショートカットに似て...

MySQLの結合の基本原理についての簡単な説明

目次結合アルゴリズム駆動テーブルと非駆動テーブルの違い1. 単純なネストループ結合、単純なネスト、イ...

NodeJSとブラウザにおけるこのキーワードの違い

序文JavaScript を学習した人なら誰でも、さまざまな環境で this がどこを指すかという問...

CSS スティッキー配置位置の詳細な説明: スティッキー問題の落とし穴

前書き: position:sticky は CSS ポジショニングの新しい属性です。相対ポジショニ...

CSS3 でシンプルな白い雲が浮かぶ背景効果を実現

これは非常にシンプルな純粋な CSS3 の白い雲の浮遊する背景効果です。浮かぶ白い雲の特殊効果は、C...

js におけるイベントバブリングとイベントキャプチャの簡単な分析

目次01-イベントバブリング1.1- イベントバブリングの概要1.2-イベントバブリングの利用(イベ...

MySQLのスリープ関数の特殊現象例の詳しい説明

序文MySQL のスリープ システム機能は、実用的な適用シナリオが少なく、通常は実験的なテストに使用...

MySQL 5.7.17 zip パッケージ バージョンを Windows 10 にインストールするチュートリアル

mysql5.7.17のインストールチュートリアルを参考までに共有します。具体的な内容は次のとおりで...