Maison > interface Web > js tutoriel > Une analyse approfondie des modules intégrés dans Node.js

Une analyse approfondie des modules intégrés dans Node.js

青灯夜游
Libérer: 2021-07-01 10:46:04
avant
1985 Les gens l'ont consulté

Cet article vous amènera à comprendre les modules intégrés dans Node.js, à jeter un œil au mécanisme de fonctionnement des modules intégrés de Node.js et à présenter brièvement EventEmitter (mode observateur) à travers des exemples.

Une analyse approfondie des modules intégrés dans Node.js
Schéma d'architecture Node.js

Modules intégrés

Une analyse approfondie des modules intégrés dans Node.js

Quelques châtaignes

  • File System API pour l'exploitation des fichiers
  • Process Enregistre des informations sur le processus Node.js
  • OS API liée au système d'exploitation
    • os.arch() Obtenez les informations sur l'architecture du système d'exploitation
    • os.cpus() Obtenez les informations relatives au processeur et au noyau du système d'exploitation

[Apprentissage recommandé : "Tutoriel Nodejs"]

Mécanisme de fonctionnement du module intégré Node.js

Grâce à l'analyse du code source Node.js

  • Le code de la couche application appelle le module Node.js

  • Le module Node.js appelle le C++ sous-jacent module internalBinding

    @& via
      Les modules intégrés de Node sont stockés dans le dossier @
    • lib

    • Les modules intégrés appellent @&. @ Méthodes niveau V8

      internalBinding

    • Dans le code C++ du répertoire src

      internalBinding

    le code C++ définit certaines méthodes sous-jacentes, qui sont exportées via l'interface V8 pour les appels au niveau Node
  • Enfin la couche Node retourne à la couche application
(Mode observateur)

EventEmitterDans certains cas, les données ne sont pas appelées via le code source de Node.js, mais notifie directement le code de Node.js pour qu'il fasse certaines choses via le système d'exploitation sous-jacent, tel que :

EventEmitter李子

process.stdin.on("data", (e) => {
  const playerAction = e.toString().trim();
});
Copier après la connexion

événement Le principe est d'utiliser

on pour implémenter Class: EventEmitter EventEmitter, qui peut transmettre certaines modifications qui se produisent au niveau de la couche inférieure, telles que la réception d'un événement de souris, à la couche d'application, afin que les développeurs puissent apporter les modifications correspondantes Operation

Scénario d'application d'écoute d'événements

@&. @Utilisez le modèle d'observateur pour résoudre le problème de communication entre plusieurs objets du module

// 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;
Copier après la connexion
// buy.js
const geekTime = require("./index.js");

geekTime.addListener("newLesson", (res) => {
  console.log("有新课了!!", res.price);
  if (res.price < 80) {
    console.log("价格小于80,买买买!");
  }
});
Copier après la connexion

Node.js Chestnut : Le mode publication-abonnement , l'enregistrement et le déclenchement des événements se produisent sur une plateforme tierce indépendante des deux parties. Implémentation JS - fonction de rappel Modèle d'observateur : les éditeurs atteindront directement les abonnés. Méthode d'implémentation JS - lancement d'événements

Vous pouvez vous référer à

Cet article sur le modèle de conception - Nuggets Booklet

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéos de programmation

 ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:juejin.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal