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 サーバーの詳細な理解と比較分析

推薦する

Dockerを使用してプライベートGitLabを構築する2つの方法

最初の方法: docker インストール1. オープンソース版のイメージを取得する2. 対応するデー...

Vueルーティングルーターの詳細な説明

目次ルーティングプラグインをモジュール方式で使用するルートの使用宣言型ナビゲーションプログラムによる...

jQueryのチェーンプログラミングスタイルの詳細な例

チェーンプログラミングの実装原理jQuery を使用すると、開発者は常にドット構文を使用して独自のメ...

Docker を使用して MySQL および Redis サービスをデプロイする方法

目次Dockerを使用してMySQLサービスをデプロイする方法DockerでRedisサービスをデプ...

VMware仮想マシンでのLinuxのコピー&ペーストの詳細な説明

1. VMware Workstation 上の Linux: 1. ソースの更新(オプション) v...

HTML5 と HTML4 の 10 の主な違い

HTML5 は HTML 標準の次のバージョンです。ますます多くのプログラマーが、Web サイトの構...

jQuery Ajax チャットボットの実装事例

チャットボットは多くの手作業を省くことができ、顧客サービス、天気予報対応など、さまざまな状況で使用で...

mysql を解決: エラー 1045 (28000): ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードの使用: NO/YES)

1. 問題時々Mysqlにログインしてパスワードを入力すると、この状況が発生しますmysql -u...

JS配列インデックス検出におけるデータ型の問題の詳細な説明

WeChat アプレット プロジェクトを書いていたとき、その中に「都市選択」機能がありました。作者は...

CentOS7.6 システムで yum を使用して lnmp 環境を構成する方法

1. インストールバージョンの詳細 サーバー: MariaDB サーバーバージョン: 5.5.60-...

Vue プロジェクトを使用して複数のプロキシを構成する際の注意事項

Vue プロジェクトの開発プロセスでは、ローカル デバッグの利便性のため、通常、vue.config...

テーブルを開く際のMySQLスレッドの問題の解決方法

問題の説明最近、MySQL5.6.21サーバーがありました。アプリケーションがリリースされた後、同時...

MySQL データベース テーブルのパーティション分割に関する考慮事項 [推奨]

テーブル パーティショニングは、データベース パーティショニングとは異なります。では、テーブル パー...

React構成サブルーティングの実装

1. コンポーネント First.js にはサブコンポーネントがあります。 './Admin...