Heim >Web-Frontend >js-Tutorial >Detaillierte Erläuterung des Knotenmodulmechanismus und der asynchronen Verarbeitung_node.js

Detaillierte Erläuterung des Knotenmodulmechanismus und der asynchronen Verarbeitung_node.js

WBOY
WBOYOriginal
2016-05-16 15:10:432114Durchsuche

1. Modulmechanismus

Der Zweck des commonJS-Modulmechanismus besteht darin, js zu erstellen, um ein Ökosystem in Webservern, Desktop-Programmen, Browsern usw. zu bilden. Node js ist eine Implementierung dieser Spezifikation und verwendet require, um andere Dateien einzuführen. In ähnlicher Weise folgt npm auch der von commonJS definierten Paketspezifikation und bildet so ein vollständiges Ökosystem.

Moduldefinition und Export

Zum Beispiel gibt es die folgende Datei mit dem Namen „circle.js“

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

Modul wird geladen

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

Modulladestrategie

Knotenmodule können hauptsächlich in zwei Kategorien unterteilt werden:

Native Module und benutzerdefinierte Module sind vom Knoten selbst definierte Module, wie z. B. HTTP- und FS-Module. Diese Module haben die schnellste Ladegeschwindigkeit.
Es gibt auch eine Kategorie benutzerdefinierter Module, einschließlich Paketmodulen und Dateien, die wir selbst definieren. Unabhängig davon, ob es sich um ein natives Modul oder ein benutzerdefiniertes Modul handelt, wird es nach dem ersten Laden vom Knoten zwischengespeichert, sodass bei der zweiten Anfrage kein Overhead entsteht.

Natives Modulladen:

Nach dem Parsen des Dateinamens sucht die Methode require() zunächst im Modulcache und dann im nativen Modul des Knotens
Aus Datei
laden module.path Für jedes geladene Dateimodul gibt es beim Erstellen des Modulobjekts ein Pfadattribut. Sein Pfad zeigt auf den Pfad des importierten Moduls.
Beim Anfordern eines absoluten Pfadmoduls wird „node_module“ nicht durchlaufen, um die schnellste Ladegeschwindigkeit zu erzielen.

Asynchrone Programmierung

Hohe mittlere Funktion
Eine High-Level-Funktion ist eine Funktion, die eine Funktion als Parameter oder als Rückgabewert akzeptiert.

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

Das größte Feature von NODE ist das opportunistische, ereignisgesteuerte, nicht blockierende IO.

Asynchrone Programmierlösungen

1. Event-Veröffentlichungs-/Abonnementmodell

Der Event-Listener-Modus wird häufig in der asynchronen Programmierung verwendet. Es handelt sich um eine Temporalisierung von Callback-Funktionen, auch bekannt als Publish/Subscribe-Modus.

//订阅

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

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

2.Promise-Modus

Das Versprechensobjekt hat drei Zustände: den unvollendeten Zustand, den abgeschlossenen Zustand und den fehlgeschlagenen Zustand.
Das Promise-Objekt muss eine then-Methode haben. Die then-Methode hat die folgenden Anforderungen

1. Rückrufmethoden für Abschlussstatus und Fehlerstatus akzeptieren.
2. Es werden nur Funktionen akzeptiert, andere Objekte werden ignoriert
3. Geben Sie weiterhin das Versprechensobjekt zurück, um Kettenaufrufe zu implementieren

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn