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

推薦する

ウェブサイトを高速化する

パフォーマンスは本当に重要ですか?パフォーマンスは重要であり、誰もがそれを知っています。なぜ私たちは...

HTMLフォーム要素の詳しい解説(パート2)

HTML 入力属性値属性value 属性は、入力フィールドの初期値を指定します。 <フォーム...

Mysql GTID Mha 設定方法

Gtid + Mha + Binlog サーバー構成: 1: テスト環境OS: CentOS 6.5...

MySQL の大きなデータ テーブルにフィールドを追加する方法

序文フィールドの追加は誰でもよく知っていると思います。簡単に記述できます。MySQL テーブルにフィ...

mysql バックアップ スクリプトを作成し、7 日間保存します。

スクリプトの要件: MySQL データベースを毎日バックアップし、スクリプトを 7 日間保存します。...

Linux システム MySQL8.0.19 クイックインストールと構成チュートリアル図

目次1. 環境の紹介2. MySQL-8.0.19をインストールする3. MySQLを設定する1. ...

CSS3 で QR コードスキャン効果を実装する例

オンラインプレビューhttps://jsrun.pro/AafKp/まず効果を見てみましょう:最初の...

Linux 上の Tomcat で MySQL にデータを挿入するときに中国語の文字化けが発生する問題を解決する

1. 問題Windows 上の Eclipse を使用して開発されたプロジェクトは Windows ...

CentOS 7.5 が Varnish キャッシュサーバー機能を導入

1. ワニスの紹介Varnish は、高性能なオープンソースのリバースプロキシサーバーおよび HTT...

CentOS7 に MySQL データベースをインストールしてデバッグする詳細な手順 [例]

この例では、デバッグ用の MySQL データベースをダウンロードしてインストールする必要があります。...

CSS スティッキーレイアウトを使用してヘッダーを上部に配置する方法

適用シナリオ:新しい要件の 1 つはアンケート調査を行うことですが、必然的に多くの質問が含まれ、1 ...

MLSQLコンパイル時権限制御例の詳細な説明

序文MySQL の権限を簡単に理解すると、MySQL では自分の能力の範囲内で操作が許可され、その限...

MySQL での正規表現の使用に関する詳細

目次1. はじめに2. 製品テーブルを準備する2.1 ステートメントの順序2.2 大文字と小文字の区...

VMware Workstation のダウンロードとインストールの詳細なチュートリアル

仮想マシンは非常に便利なテストソフトウェアです。ハードウェアに損傷を与えることなく、さまざまなテスト...

proxy_pass がパス パスに従って転送する場合の "/" 問題の詳細な説明

nginx で proxy_pass を設定するときに、^~ に従ってパスを一致させる場合は、pro...