ホームページ ウェブフロントエンド jsチュートリアル 初心者のための Node.js チュートリアル (1)

初心者のための Node.js チュートリアル (1)

Mar 12, 2018 pm 05:17 PM
javascript node.js 初心者

今回は Node.js の初心者向けチュートリアルをお届けします。以下は実際的なケースです。

メインライン: Node.js とは -> Node.js の特徴 -> コアモジュール ->モジュール --> パッケージ --> パッケージ マネージャー --> コールバック関数 -->

ノードとは何ですか? Node.js という名前を見て、一見すると jQuery のようなライブラリやフレームワークかと思う人もいるかもしれませんが、実際には Node.js はサーバー上で JavaScript を実行できるプラットフォームです。 、または Node.js は、非ブラウザ環境で JavaScript を実行できるようにするツールであり、世界最速の Chrome v8 エンジンと呼ばれるものを使用しており、Core JavaScript と Node Composited の 2 つの部分で構成されています。標準ライブラリであるコア JavaScript は実際には ECMAScript を参照します。つまり、ブラウザ側の JS スクリプトに ECMAScript のみが含まれており、ドキュメント オブジェクト モデル (DOM) とブラウザ オブジェクト モデル (BOM) は含まれていないと考える人もいます。そのノードには互換性の問題がありますか? Node との互換性の問題はありません。クライアント ブラウザの JS スクリプトを学習しているためです。また、よく話題になる JS の互換性の問題は、実際には DOM と BOM の互換性の問題を指していることを理解する必要があります。Node 標準ライブラリとは何ですか?これは、C 標準ライブラリまたは C++ 標準拡張ライブラリに似ています。Node.js の特徴は、ノンブロッキングの非同期イベント駆動型であるため、JavaScript をスクリプトの世界に統合できます。まず最初の例、helloworld を見てください。この helloworld は他の言語よりも複雑だと思われますか?ただし、これら 6 行のコードで実装されている関数を見てみましょう。Node.js の柱の 1 つはモジュールなので、最初に学習する必要があるのはモジュールです。モジュール?モジュールは実際には js ファイルです。クライアント ブラウザでは、css ファイルを埋め込んで別の css ファイルを導入したい場合は @import ディレクティブを使用できますが、js で別の css ファイル js を導入したい場合は、もちろん、それが実現できないというわけではありません。createElement を使用して script タグを作成し、HTML に appendChild を追加するだけで実現できます。はい、私たちのノードはこの問題を解決しました。私たちのノードでは、js ファイルが 2 つの js ファイルを作成しましたが、どうすれば 1 つの js ファイルに別の js ファイルを導入できるでしょうか。これは、require という関数を通じて導入でき、最終的には属性とメソッドを公開する module.exports という関数を通じていくつかのプロパティとメソッドを公開します。 1 つはコア モジュールで、一般的なコア モジュールには、http モジュール、オペレーティング システム関連のモジュール、および処理やファイル操作を行うファイル システム モジュールが含まれます。 、util モジュール ツール、もう 1 つはローカル モジュールです。いわゆるローカル モジュールは、モジュールと比較して、より大きな単位がパッケージです。モジュールをファイルの 1 つと考えることができ、パッケージをフォルダーと考えることができます。つまり、フォルダーを使用して、同様の機能を持つ多数のファイルをまとめてパッケージ化することができます。パッケージに関して言えば、私たちが自分で作成したパッケージに加えて、より重要なのは、npm.org Web サイトには、数十社が実装した多数のサードパーティ パッケージがあります。何千人もの人々がそれを使いたいのですが、具体的にはどうやって使うのですか?サードパーティのパッケージを簡単に使用できるようにするために、私たちの Node はパッケージ管理ツールと呼ばれるツールを開発しました。これは私たちの npm です。このツールの使用方法を簡単に見てみましょう。 1 つはグローバル インストールで、もう 1 つはローカル インストールです。これは、たとえば、Python や Ruby のように、コマンド ライン操作に適している場合があります。私たちのlessc、別のローカルパッケージは一般に、現在取り組んでいるいくつかのプロジェクトで使用されています。 もちろん、これらのものだけがあれば、Node.jsには大きな機能はありません。これらのものは実際には他の言語で利用可能であるためです。 Python や Ruby など。Node.js の最大の特徴は、実際には非同期のノンブロッキング モジュールとイベント プログラミング モジュールです。これは他の言語とは大きく異なります。たとえば、次のようなものです。 2 つの例を説明します。同期 IO を実装しており、クエリしたいものは通常、php などの次のコードを作成することを前提としています。この形式では、つまり、最初に db.query を使用し、次に SQL クエリがブロックされ、データベースが結果を返して res 変数に格納するのを待ちます。ただし、実際の記述方法は次のとおりです。これは非同期を使用します。実際、このステートメントは、このような SQL クエリを生成し、ステートメントの後に関数を配置することがわかります。この関数はコールバック関数と呼ばれます。 res.auto が実行されると、直接実行されません。内部のコンテンツはいつ実行されますか?データベースがメッセージを返すまで待機し、イベント ループを通じてコールバック関数を入力し、クエリ結果を出力します。次に、同期とは何か、非同期とは何か、およびプログラムの実行について説明します。 IO 操作には時間がかかり、数十万または数億の命令サイクルがかかる場合がありますが、JavaScript ステートメントの実行には数百または数千の命令サイクルしかかからない場合もあります。もちろん、最適化されている可能性があります。おそらく必要なのは数十個だけなので、IO が発生すると時間の無駄になります。オペレーティング システムと CPU は割り込みを介して非同期スケジューリング メソッドを実装します。つまり、プロセスが IO 要求を開始すると、オペレーティング システムがハングします。 IO が完了すると、オペレーティング システムは元のプロセスを再開し、実行を継続します。同時に、このリクエストの結果にアクセスできます。メソッドが呼び出されます。これは同期 IO、またはブロッキング IO ですが、ノードの IO モードでは、非同期 IO、または非ブロッキング IO が使用されます。これは、プロセスが IO リクエストを開始した後、すぐに戻り、他の実行を継続することを意味します。タスクを実行し、他の手段を使用して IO 操作が完了したことを通知し、IO 操作が完了した後にロジック コードを処理します。その後、ノンブロッキング IO が開始されると、プロセスはブロッキング状態に入りません。ただし、他の部分はイベント ループに入り、他のイベントを処理します。ここでは、ノード内のすべての計算ロジック操作がイベントに抽象化されます。プログラム全体がイベント ループであり、イベント ループはイベント キューと呼ばれるものの処理を継続します。つまり、最初にイベントがあり、実行プロセス中に IO リクエストなどのいくつかのリクエストが開始されることがあります。 IO リクエストが完了すると、イベント キューがイベント キューに追加され、プロセスがイベント ループに入るまで待機します。これは、イベント ループに基づいた処理モードです。 qt、gtk などのクラシックで一般的に使用されるモード。たとえば、マウスのクリックもイベントであり、イベントにはコールバック関数が必要です。では、なぜ Node はこの不明瞭なプログラミング モデルを使用するのでしょうか?実際、これは Node のもう 1 つの非常に特殊な戦略です。これはシングルスレッド モードを使用します。たとえば、Web サーバーを開発したい場合は、当然ながら同時実行性の要件が必要です。複数のユーザーの同時アクセスを許可することは、1 人のユーザーのリクエストを処理してから 2 番目のユーザーのリクエストを処理するという意味ではありません。この場合、ユーザーが増えると処理速度が非常に遅くなります。ユーザーは非常に遅く、切断されません。他のユーザーは待ち続けることになります。これは不合理です。ブロッキング モードで同時実行を実現するには、マルチスレッドを使用する必要があります。つまり、改善したい場合は、1 つのプロセスで 1 つのタスクしか処理できません。 CPU のスループット、マルチスレッドを使用する必要があります。これは、CPU コアの数よりもはるかに多く必要になる可能性があります。たとえば、あるロジックでは、これは予測できません。最初に計算の一部を計算し、次にファイルの読み取りや書き込みなどの IO リクエストを開始するか、ネットワーク リクエストを開始します。その後、2 番目の計算部分に入ります。同時実行を実現するには、マルチスレッド モードを使用します。その実行はそのような例の 1 つであり、CPU が 1 つあると仮定すると、最初のスレッドが計算のために CPU を捕捉し、その後 IO 要求ステージに到達してブロックされます。この時点で、CPU の制御が転送されます。 、そしてこの時点で、2 番目のスレッドが CPU を捕捉し、その後 IO に入り、再びブロックされ、その後 CPU、スレッド 3、スレッド 4、スレッド 5 などの制御を解放します。その後、一定の期間が発生する可能性があります。途中でアイドル時間が発生し、スレッド 1 を待ちます。IO が終了し、CPU が占有されていないことがわかり、CPU を使用して計算を開始します。このような計算と IO に基づく同時プリエンプティブ モードですが、ノンブロッキング モデルの場合、そのモデルは次のようになります。シングルスレッドの計算 1 は、非同期 IO リクエストを開始します。この時点で、別の計算 1 (別のユーザーによって開始された計算 1 である可能性があります) に直接入ります。次に 2 番目のリクエストを開始し、5 ユーザーを待ちます。開始後、最初のユーザーの計算はこの時点で終了し、イベント ループは最初のユーザーによって開始された IO リクエストを実行する単一のスレッドになります。理論的には、ノンブロッキング モードのプロセスによる CPU 使用率は 100% であり、これは理想的な状況であり、複数のスレッドが必要になる場合はありません。 ?複数のコアがある場合、たとえば 2 つのコアがある場合、2 つのスレッドをオープンします。 では、ノンブロッキングにはブロッキングと比べてどのような利点があるのでしょうか。マルチスレッドは高速に聞こえますが、実際にはそれほど高速ではありません。スイッチングのため、20 ミリ秒ごとにステーションを切り替えると、CPU キャッシュの使用効率が非常に低くなり、ノンブロッキングはあまり効率的ではありません。はい、最初に最初のファイルを読み取り、次に 2 番目のファイルを読み取ります。これは mongoDB 操作です。ここでは Node の基本について説明しましたが、Node の応用は何でしょうか?まず、Node には多くのサードパーティ モジュールがあり、たとえば、Web サイトを作成したい場合は、jade と呼ばれるテンプレート エンジンを使用して HTML を生成できます。 cssの生成、javascript圧縮ツール、websocketの使用、socket.io、SQLデータベースのORM、oAuth、デーモンプロセス、コマンドライン解析、構文解析、DOMとは関係ありませんが、実際に処理できるのは、ファイルのアップロード、構文のハイライト表示、マークダウンの解析、エンコード変換の画像処理、軽量のスレッドとコルーチン、コーヒースクリプト、およびブラウザー側での静的分析です。今日は、Node.js の紹介です。

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨書籍:

Node.js コードの実行原理

angularjs での $apply() の使用方法の詳細な説明

以上が初心者のための Node.js チュートリアル (1)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

初心者向けにミスト ロック キングダムをプレイするためのヒント 初心者向けにミスト ロック キングダムをプレイするためのヒント Jan 28, 2024 pm 03:33 PM

ミストロック キングダムは、プレイヤーが Sons of Fire としてプレイして生き残り、探索できるオープンワールド ゲームです。このゲームは、アクション RPG チャレンジのユニークなエンターテイメントを組み合わせており、プレイヤーに無限の驚きと喜びをもたらします。ゲームでは、プレイヤーはリソース、環境、武器などを探索できます。初心者プレイヤーの中には、ゲームの始め方に興味がある人もいるかもしれません。この紹介と共有では、関連するスタート ガイドをいくつか提供します。フォグ ロック キングダムの初心者向けヒント: 瘴気に包まれた地域の危険度は異なります。探索プロセス中に、マップの新しいエリアが徐々にロック解除され、瘴気に包まれた地域の位置が確認できるようになります。マップは2色で区別されており、青色のエリアは短時間しか進入できず、キャラクターの能力レベルに応じて滞在可能時間も変化する。

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

アンカーポイントアドベント ノービス十中隊おすすめキャラクター アンカーポイントアドベント ノービス十中隊おすすめキャラクター Feb 20, 2024 pm 02:30 PM

「アンカーアライバル」は、高解像度の美少女 2D をテーマにした 3D ターン制カードゲームです。プレイヤーが探索して体験できる豊富でエキサイティングなキャラクターの組み合わせを提供します。高品質のラインナップの強力な組み合わせが数多くあります。新規プレイヤーは初心者にも気になる初心者向けの強力なキャラは何ですか? 初心者が10連ゴールドを獲得するための選択の参考を見てみましょう! アンカーポイント降臨は初心者向けの強力なキャラです。10連の最初のピックはアリスです。主に単体雷系爆発キャラで、出力も爆発力が高く、初心者にも優しいので選ぶのがオススメです。ゴールド10連は「アリス」+「アンテロープ」の組み合わせがおすすめ アリスはゴールドパイア属性を出力するのに最も適したキャラクターであり、初心者カードプールの他の2キャラクターと比べても少しも強いです。アリスはスペシャルをパスできる

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

バッチインデントの使い方を学ぶことは、PyCharm 初心者が習得しなければならないスキルです バッチインデントの使い方を学ぶことは、PyCharm 初心者が習得しなければならないスキルです Dec 30, 2023 pm 12:58 PM

PyCharm の初心者向けの必須スキル: バッチ インデントの使用をマスターするには、特定のコード サンプルが必要です。 概要: PyCharm は、開発者の効率向上に役立つ多くの実用的なツールと機能を提供する強力な Python 統合開発環境 (IDE) です。日常のコーディングプロセスでは、コードの形式を整然と美しく保つためにコードをインデントする必要があることがよくあります。 PyCharm が提供するバッチ インデント機能を使用すると、コードを迅速にバッチ インデントし、コーディング効率を向上させることができます。この記事では Py について説明します

WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 Dec 17, 2023 am 09:39 AM

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

エンシェント クラウンの初心者ガイドとゲームプレイの紹介 エンシェント クラウンの初心者ガイドとゲームプレイの紹介 Feb 20, 2024 am 11:20 AM

Crown of the Ancients は、西洋の魔法の冒険をベースにした高品質で戦略的なカード モバイル ゲームです。ゲーム内では秘密の探索、遺跡の冒険、全国選手権などの特別なゲームプレイがあなたを待っています。したがって、初心者プレイヤーがこのゲームをすぐに始めたい場合は、初心者ガイドが不可欠です。今日、編集者が関連するガイドをお届けしますので、見てみましょう。エンシェントクラウンの初心者向けガイド、ゲームプレイ、エリア開放スタイルの概要: 1. ダイヤモンド蓄積フロー:すべてはダイヤモンドを蓄積することに集中しており、村を出てから熱心に働き始めます。メインの魔法の武器、ダイヤモンドを必要とする 3 つのフライホイール アクティビティなどを除いて、その他は無視されます。主にそのうちの 1 つに重点が置かれます。ヒーロー チャレンジには注意を払わないでください。できるだけ多く戦えます。 、そしてそれを強制しないでください。利点: ダイヤモンドを集めるためにいじるだけで、村を出た後、ダイヤモンドを使った最新のアクティビティにすぐにアクセスでき、新しいハードウェア ヒーロー シリーズを入手でき、ダイヤモンドは壊れます。

See all articles