ホームページ >ウェブフロントエンド >jsチュートリアル >ノードモジュールの仕組みと非同期処理_node.jsの詳細説明

ノードモジュールの仕組みと非同期処理_node.jsの詳細説明

WBOY
WBOYオリジナル
2016-05-16 15:10:432079ブラウズ

1. モジュールの仕組み

commonJS モジュール メカニズムの目的は、Web サーバー、デスクトップ プログラム、ブラウザーなどでエコシステムを形成する js を構築することです。 Node js はこの仕様の実装であり、require を使用して他のファイルを導入します。同様に、npm も commonJS で定義されたパッケージ仕様に従い、完全なエコシステムを形成します。

モジュールの定義とエクスポート

たとえば、circle.js という名前の次のファイルがあります

exports.getName = function(name) {
  return name
}

モジュールの読み込み

var circle = require('/circle.js')
console.log(circle.getName('WPY'))

モジュールロード戦略

ノードモジュールは主に 2 つのカテゴリに分類できます:

ネイティブ モジュールとカスタム モジュール。いわゆるネイティブ モジュールは、HTTP モジュールや fs モジュールなど、ノード自体によって定義されるモジュールです。これらのモジュールは最も高速な読み込み速度を持っています。
独自に定義したパッケージ モジュールやファイルなど、カスタム モジュールのカテゴリもあります。ネイティブ モジュールであってもカスタム モジュールであっても、初めてロードされた後にノードによってキャッシュされるため、2 回目のリクエストではオーバーヘッドが発生しません。

ネイティブモジュールの読み込み:

ファイル名を解析した後、require() メソッドは最初にモジュール キャッシュ内を検索し、次にノード
のネイティブ モジュール内を検索します。 ファイルからロード
module.path ロードされたファイル モジュールごとに、モジュール オブジェクトの作成時に paths 属性が存在します。そのパスは、インポートされたモジュールのパスを指します。
絶対パス モジュールをリクエストする場合、読み込み速度を最速にするために、node_module はトラバースされません。

非同期プログラミング

高中間関数
高レベル関数は、関数をパラメータまたは戻り値として受け取る関数です。

function foo(X) {
  return function() {
    return x
  }
}

NODE によってもたらされる最大の機能は、日和見的なイベント駆動型のノンブロッキング IO です。

非同期プログラミング ソリューション

1. イベント発行/サブスクリプション モデル

イベント リスナー モードは、非同期プログラミングで広く使用されており、パブリッシュ/サブスクライブ モードとも呼ばれるコールバック関数の一時化です。

//订阅

emitter.on("event1", function(message){
  console.log(message)
})
//发布

emitter.emit("event1", "I am message")

2.お約束モード

Promise オブジェクトには、未完了状態、完了状態、失敗状態の 3 つの状態があります。
Promise オブジェクトには then メソッドが必要です。 then メソッドには次の要件があります

1. 完了ステータスとエラーステータスのコールバックメソッドを受け入れます。
2. 関数のみが受け入れられ、他のオブジェクトは無視されます
3. 引き続き Promise オブジェクトを返してチェーン呼び出しを実装します

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