目次
組み込みモジュール" >組み込みモジュール
オブザーバー パターンを使用して複数のモジュール オブジェクト間の通信の問題を解決する
ホームページ ウェブフロントエンド jsチュートリアル Node.js の組み込みモジュールの詳細な分析

Node.js の組み込みモジュールの詳細な分析

Jul 01, 2021 am 10:46 AM
node.js 内蔵モジュール

この記事では、Node.js の組み込みモジュールを理解し、Node.js 組み込みモジュールの動作メカニズムを見て、EventEmitter (オブザーバー モード) について簡単に紹介します。例を通して。

Node.js の組み込みモジュールの詳細な分析
Node.js アーキテクチャ図

組み込みモジュール

Node.js の組み込みモジュールの詳細な分析

[推奨学習:「

nodejs チュートリアル 」]

Node.js 組み込みモジュールの動作メカニズム

Node.js ソース コード分析による

  • アプリケーション層のコードは Node.js モジュールを呼び出します

  • Node.js モジュールは基盤となる C を呼び出しますモジュールから

    internalBinding

    • Node の組み込みモジュールは lib フォルダーに保存されます

    • 組み込みモジュールは

      internalBinding V8 レベルのメソッドを呼び出します

    • internalBinding src ディレクトリの C コードでは、

  • C コードはいくつかを定義します。基盤となるメソッドは、ノード層が呼び出すために V8 のインターフェイスを通じてエクスポートされます。

  • 最後に、ノード層はアプリケーション層に戻ります。

EventEmitter (オブザーバー モード)

場合によっては、データはノード経由で呼び出されません。 js ソース コードですが、基盤となるオペレーティング システムを通じて何かを行うように Node.js コードに直接通知されます。たとえば、

EventEmitter

Chestnut

process.stdin.on("data", (e) => {
  const playerAction = e.toString().trim();
});
ログイン後にコピー

on イベントの原理は、 クラス: EventEmitter EventEmitter は、マウス イベントの受信など、最下層で発生するいくつかの変更を渡すことができます。をアプリケーション層に渡し、開発者が対応する操作を実行できるようにします

イベント リスナー アプリケーション シナリオ

オブザーバー パターンを使用して複数のモジュール オブジェクト間の通信の問題を解決する

// index.js
const EventEmitter = require("events").EventEmitter;

class GeekTime extends EventEmitter {
  constructor() {
    super();
    setInterval(() => {
      this.emit("newLesson", { price: Math.random() * 100 });
    }, 3000);
  }
}

const geekTime = new GeekTime();

module.exports = geekTime;
ログイン後にコピー
// buy.js
const geekTime = require("./index.js");

geekTime.addListener("newLesson", (res) => {
  console.log("有新课了!!", res.price);
  if (res.price < 80) {
    console.log("价格小于80,买买买!");
  }
});
ログイン後にコピー

    Node.js Chestnut:
  • EventEmitter Browser Chestnut - addEventListener - RemoveEventListener
  • オブザーバー モードとパブリッシュ/サブスクライブの違いモード

パブリッシュ/サブスクライブ モードでは、イベントの登録とトリガーは、両者から独立したサードパーティ プラットフォームで行われます。 JS実装 - コールバック関数 オブザーバー パターン: パブリッシャーが購読者に直接連絡します。 JS 実装方法 - イベントのスロー

このデザイン パターンの記事 - Nuggets ブックレットを参照してください。

プログラミング関連の知識の詳細については、こちらを参照してください:

プログラミング ビデオ

! !

以上がNode.js の組み込みモジュールの詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Nodeのメモリ制御に関する記事 Nodeのメモリ制御に関する記事 Apr 26, 2023 pm 05:37 PM

Nodeのメモリ制御に関する記事

Node V8 エンジンのメモリと GC の詳細な図による説明 Node V8 エンジンのメモリと GC の詳細な図による説明 Mar 29, 2023 pm 06:02 PM

Node V8 エンジンのメモリと GC の詳細な図による説明

Node.js 19 が正式リリースされました。その 6 つの主要な機能についてお話しましょう。 Node.js 19 が正式リリースされました。その 6 つの主要な機能についてお話しましょう。 Nov 16, 2022 pm 08:34 PM

Node.js 19 が正式リリースされました。その 6 つの主要な機能についてお話しましょう。

Node の File モジュールについて詳しく説明しましょう Node の File モジュールについて詳しく説明しましょう Apr 24, 2023 pm 05:49 PM

Node の File モジュールについて詳しく説明しましょう

ノードがnpmコマンドを使用できない場合はどうすればよいですか? ノードがnpmコマンドを使用できない場合はどうすればよいですか? Feb 08, 2023 am 10:09 AM

ノードがnpmコマンドを使用できない場合はどうすればよいですか?

最適な Node.js Docker イメージを選択する方法について話しましょう。 最適な Node.js Docker イメージを選択する方法について話しましょう。 Dec 13, 2022 pm 08:00 PM

最適な Node.js Docker イメージを選択する方法について話しましょう。

Node.js の GC (ガベージ コレクション) メカニズムについて話しましょう Node.js の GC (ガベージ コレクション) メカニズムについて話しましょう Nov 29, 2022 pm 08:44 PM

Node.js の GC (ガベージ コレクション) メカニズムについて話しましょう

Nodeのイベントループについて話しましょう Nodeのイベントループについて話しましょう Apr 11, 2023 pm 07:08 PM

Nodeのイベントループについて話しましょう

See all articles