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

推薦する

div 内の img と span の垂直方向の中央揃えの問題について

以下のように表示されます。 XML/HTML コードコンテンツをクリップボードにコピー<htm...

ApacheとTomcatによるクラスタ環境構築プロセスの分析

実際、Apacheクラスタを構築するのは難しくありません。私もインターネットで情報を見つけて自分で設...

ネイティブJSで様々なモーションの複合モーションを実現

この記事では、ネイティブ JS で実装された複合モーションを紹介します。複合モーションとは、異なる属...

JavaScript における変数と関数の昇格の詳細な例

js 実行字句解析フェーズ: 形式パラメータ解析、変数宣言解析、関数宣言解析の 3 つの部分が含まれ...

MySQL と Golan 間の従来の分散トランザクションのための 7 つのソリューション

目次1. 基本理論1.1 取引1.2 分散トランザクション2. 分散トランザクションソリューション2...

HTML のインラインブロックの空白を素早く削除する 5 つの方法

inline-block プロパティ値は、「インライン」要素のマージンとパディングを制御する必要があ...

JavaScript の navigator.userAgent がブラウザ情報を取得するケースの説明

ブラウザはおそらく私たちにとって最も馴染みのあるツールです。 Firefox、Opera、Safar...

MySQL マルチインスタンス構成ソリューション

1.1 MySQL マルチインスタンスとは何ですか?簡単に言うと、MySQL マルチインスタンスとは...

フロントエンドの上級者向けコースでは、JavaScript のストレージ機能の使い方を学習します。

目次序文背景実施計画の考え方js ストレージ機能ソリューション設計やっと要約する序文どの SaaS ...

MySQL における楽観的ロック、悲観的ロック、MVCC の包括的な分析

序文データベースの実際の使用では、データの書き込みや読み取りを同時に行わないことが必要な状況によく遭...

docker-maven-plugin の詳細な使用方法

目次Docker-Maven-プラグインMavenプラグインの自動デプロイメント手順1. ホストマシ...

MySQL に絵文字表現を挿入できない問題の解決方法

序文最近この問題に遭遇するまで、私は UTF-8 が文字セットの問題に対する普遍的な解決策だと考えて...

バランスの取れたデジタルスクロール効果を実現するJavaScript

目次1. 実施の背景2. 実装のアイデア3. 実施プロセス1. 実施の背景先週、ユーザーがタスクを完...

CSSを使用して炎の効果を作成する方法

本文は以下から始まります。 123WORDPRESS.COM ダウンロード:純粋な CSS3 で超リ...

MySQL開発標準と使用スキルの概要

1. 命名規則1. データベース名、テーブル名、フィールド名には小文字を使用し、アンダースコアで区切...