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

推薦する

Vue の自動書式設定の改行保存の詳細な説明

ネットで変更方法をいろいろ調べたのですが、うまくいきませんでした。後で大物から見て削除しました。フォ...

Dockerコンテナ内のホストのホスト名が取得できない問題の解決方法

Node.js環境でテストが通っています。他の言語でも同様です。環境変数を取得する方法を使うだけです...

Vue が価格カレンダー効果を実現

この記事では、価格カレンダー効果を実現するためのVueの具体的なコードを例として紹介します。具体的な...

Linux システムファイル共有 samba 設定チュートリアル

目次sambaをアンインストールしてインストールする新しい共有パスを作成し、権限を設定するSamba...

ウェブサイトアイコンを追加するにはどうすればいいですか?

最初のステップは、アイコン作成ソフトウェアを準備することです。まず、いわゆるアイコンは拡張子 .ic...

Dockerコンテナの接続と通信の実装

ポート マッピングは、Docker を別のコンテナーに接続する唯一の方法ではありません。 Docke...

Dockerfileを使用してDockerイメージを構築する手順

Dockerfile は、命令を含むテキスト ファイルです。各命令はレイヤーを構築するため、各命令の...

初心者がHTMLタグを学ぶ(3)

関連記事:初心者が学ぶ HTML タグ (2)導入された HTML タグは、必ずしも XHTML 仕...

MySQL テーブルタイプ ストレージエンジンの選択

目次1. 現在のデータベース支出のストレージエンジンを表示する方法1:方法2: 2. ENGINE=...

JavaScript オブジェクト指向の実践の詳細説明: カプセル化とオブジェクトのドラッグ

目次概要1. DOM要素をアニメーション化する方法2. 現在のブラウザでサポートされている変換互換の...

MySQL 外部キー (FOREIGN KEY) の使用例の詳細な説明

はじめに: すべてのデータを 1 つのテーブルに保存することのデメリット表の構成構造は複雑で不明瞭で...

MySqlを最適化するためにnot inを使用する方法

最近、プロジェクトで選択クエリを使用する際に、未使用の主キー ID を除外するために not in ...

JavaScript で支払いの 10 秒カウントダウンを実現

この記事では、支払いの10秒カウントダウンを実現するためのJavaScriptの具体的なコードを参考...

Linuxでサーバーのハードウェア情報を表示する方法

みなさんこんにちは。今日は12連休ですが、何かお買い物はしましたか?今日は「Linux View S...

mysql ステートメントを使用してユーザー権限を照会するプロセスの詳細な説明

MySQL では、ユーザーに付与された権限をどのように確認しますか? ユーザーに付与される権限は、グ...