Lernen Sie die Modulspezifikationen von Knoten (1) von 0 bis 1 kennen
Bevor wir die Konzepte von CommonJS, AMD und CMD erklären, verstehen wir zunächst die Modularität von js. Modularisierung besteht, wie der Name schon sagt, darin, das Projekt nach Funktionen oder anderer Logik zu zerlegen. Jeder Teil verarbeitet nur eine Funktion, um die Funktionen zu entkoppeln und die zukünftige Entwicklung und Wartung zu erleichtern. Dann muss die Modularisierung über die folgenden Funktionen zum Teilen und Zusammensetzen von Modulen verfügen:
Definieren Sie gekapselte Module;
-
Definieren Sie die Abhängigkeit des neuen Moduls auf anderen Modulen;
kann die Einführung anderer Module unterstützen
Dann wird eine Reihe von Spezifikationen benötigt Um diese Fähigkeiten zu definieren, erschienen CommonJS, AMD, CMD usw.
1. CommonJS
CommonJS hieß ursprünglich ServerJS
, was die Spezifikation von js auf der Serverseite ist. Gemäß der CommonJS-Spezifikation ist eine einzelne Datei ein Modul, require
wird zum Laden eines Moduls verwendet und exports
wird verwendet, um Methoden oder Eigenschaften im Modul nach außen zugänglich zu machen.
Zum Beispiel:
// hello.jsfunction say(username){ console.log( 'hello, '+username ); } exports.say = say;
=============
// main.jsvar person = require('./hello'); person.say('wenzi'); // hello, wenziperson.say('师少兵'); // hello, 师少兵person.say('NUC'); // hello, NUC
Gleichzeitig kann die require
-Anweisung an einer beliebigen Stelle in der Datei geschrieben werden, solange sie vor der Referenz verwendet wird, muss sie nicht am Anfang der Datei geschrieben werden. Um den Code jedoch leichter lesbar zu machen und intuitiv zu erkennen, auf welche Module derzeit verwiesen wird, platzieren Sie ihn am besten an den Anfang der Datei.
Der Unterschied zwischen Exporten und module.exports
Einige Leute haben möglicherweise gesehen, dass Exporte direkt verwendet werden, andere wiederum, dass sie module.exports verwenden. Hier ist eine kurze Erklärung des Unterschieds zwischen den beiden.
Nehmen wir ein einfaches Beispiel:
var a = {name:'wenzi'};var b = a;console.log(a); // {name: "wenzi"}console.log(b); // {name: "wenzi"}
Die Ausgabeergebnisse von a und b sind gleich. Jetzt ändere ich den Wert von name in b:
b.name = 'shaobing';console.log(a); // {name: "shaobing"}console.log(b); // {name: "shaobing"}
Die Ausgabeergebnisse von a und b haben sich geändert. Ich deklariere b neu:
var b = {name:'师少兵'};console.log(a); // {name: "shaobing"}console.log(b); // {name: "师少兵"}
Diese drei Beispiele geben drei Ergebnisse aus:
deklariere ein Objekt und weise a zu b zu, und dann a und b geben das gleiche Ergebnis aus;
ändert den Namen in b, dann ändert sich auch der Name in a
Deklariert das b-Objekt neu , dann ändert sich der Name in a nicht mit b
: a ist ein Objekt, b ist Die Referenz auf a, also auf a und b in den gleichen Speicher, daher ist die Ausgabe in 1 gleich. Wenn b geändert wird, dh der Inhalt von a und b, die auf dieselbe Speicheradresse zeigen, geändert wurde, wird auch a widergespiegelt, sodass die Ausgabe des zweiten Beispiels dieselbe ist. Wenn b überschrieben wird, zeigt b auf einen neuen Speicher und a zeigt immer noch auf den ursprünglichen Speicher, sodass die endgültige Ausgabe anders ausfällt. Dann können Sie zu diesem Zeitpunkt
und einführen: exports
module.exports
- Der Anfangswert von module.exports ist ein leeres Objekt {}
- require() gibt module.exports anstelle von exports zurück
- Wenn module.exports einen neuen Zeiger hat, sind die Exporte ungültig; wenn sich module.exports nicht geändert hat, exportieren Sie es einfach direkt.
2. AMD und RequireJS
Apropos AMD, ich muss sagen
Dass AMD sich von der CommonJS-Community unabhängig gemacht hat und die AMD-Community größtenteils darauf zurückzuführen ist Dazu setzt es auch auf die Förderung von RequireJS-Autoren.RequireJS
In der AMD-Spezifikation lautet das standardmäßig empfohlene Modulformat:
// hello.js// 将需要引入的模块全部写入到数组中,然后传递参数进行调用define(['a', 'b'], function(a, ,b){ // do something return{ hello : function(username){ console.log( 'hello, '+username ); } } })
// main.jsdefine(['./hello'], function(h){ h.hello('wenzi'); })
define
3. CMD und Seajs
Die CMD-Spezifikation wurde vom berühmten Yu Bo in China vorgeschlagen. Das Einzige, was zu tun ist, ist
an diesem Ort. SeaJS verwendet die CMD-Spezifikation: 就近依赖
require
Sie können den Unterschied zwischen AMD und CMD auch hier sehen:
AMD muss normalerweise alle Abhängigkeiten auf einmal einführen und sie dann über Parameter weitergeben, während CMD sie nur bei Bedarf einführt
AMD unterstützt jedoch auch Importformate wie CMD, die interne Ausführung basiert jedoch weiterhin auf der Logik von AMD.
4. Zusammenfassung
In diesem Artikel werden die relevanten Unterschiede und Zusammenhänge zwischen CommonJS-, AMD- und CMD-Spezifikationen vorgestellt:
-
CommonJS: Jede Datei ist ein Modul und muss nicht definiert werden.
AMD: Verwenden Sie define, um ein Modul zu definieren und darauf zu achten im Voraus;
- CMD: Verwenden Sie define, um Module zu definieren und von
in der Nähe abhängig zu sein

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen


![WLAN-Erweiterungsmodul ist gestoppt [Fix]](https://img.php.cn/upload/article/000/465/014/170832352052603.gif?x-oss-process=image/resize,m_fill,h_207,w_330)
Wenn es ein Problem mit dem WLAN-Erweiterungsmodul Ihres Windows-Computers gibt, kann dies dazu führen, dass Sie nicht mehr mit dem Internet verbunden sind. Diese Situation ist oft frustrierend, aber glücklicherweise enthält dieser Artikel einige einfache Vorschläge, die Ihnen helfen können, dieses Problem zu lösen und Ihre drahtlose Verbindung wieder ordnungsgemäß funktionieren zu lassen. Behebung, dass das WLAN-Erweiterbarkeitsmodul nicht mehr funktioniert Wenn das WLAN-Erweiterbarkeitsmodul auf Ihrem Windows-Computer nicht mehr funktioniert, befolgen Sie diese Vorschläge, um das Problem zu beheben: Führen Sie die Netzwerk- und Internet-Fehlerbehebung aus, um drahtlose Netzwerkverbindungen zu deaktivieren und wieder zu aktivieren. Starten Sie den WLAN-Autokonfigurationsdienst neu. Ändern Sie die Energieoptionen. Ändern Erweiterte Energieeinstellungen Netzwerkadaptertreiber neu installieren Einige Netzwerkbefehle ausführen Schauen wir uns das nun im Detail an

In diesem Artikel werden Methoden zur Behebung des Ereignisses ID10000 beschrieben, das darauf hinweist, dass das WLAN-Erweiterungsmodul nicht gestartet werden kann. Dieser Fehler kann im Ereignisprotokoll des Windows 11/10-PCs erscheinen. Das WLAN-Erweiterbarkeitsmodul ist eine Komponente von Windows, die es unabhängigen Hardwareanbietern (IHVs) und unabhängigen Softwareanbietern (ISVs) ermöglicht, Benutzern angepasste Features und Funktionen für drahtlose Netzwerke bereitzustellen. Es erweitert die Funktionalität nativer Windows-Netzwerkkomponenten durch Hinzufügen von Windows-Standardfunktionen. Das WLAN-Erweiterungsmodul wird im Rahmen der Initialisierung gestartet, wenn das Betriebssystem Netzwerkkomponenten lädt. Wenn beim WLAN-Erweiterungsmodul ein Problem auftritt und es nicht gestartet werden kann, wird möglicherweise eine Fehlermeldung im Protokoll der Ereignisanzeige angezeigt.

Wie gehe ich mit dem Datei-Upload um? Der folgende Artikel stellt Ihnen vor, wie Sie Express zum Hochladen von Dateien im Knotenprojekt verwenden. Ich hoffe, er ist hilfreich für Sie!

1. Einführung in das SYS-Modul Das zuvor vorgestellte OS-Modul ist hauptsächlich für das Betriebssystem gedacht, während das SYS-Modul in diesem Artikel hauptsächlich für den Python-Interpreter gedacht ist. Das sys-Modul ist ein Modul, das mit Python geliefert wird. Es ist eine Schnittstelle für die Interaktion mit dem Python-Interpreter. Das sys-Modul bietet viele Funktionen und Variablen für den Umgang mit verschiedenen Teilen der Python-Laufzeitumgebung. 2. Häufig verwendete Methoden des sys-Moduls Sie können mithilfe der dir()-Methode überprüfen, welche Methoden im sys-Modul enthalten sind: import sys print(dir(sys))1.sys.argv – Rufen Sie die Befehlszeilenparameter sys ab. argv wird verwendet, um den Befehl von außerhalb des Programms zu implementieren. Dem Programm werden Parameter übergeben und es kann die Befehlszeilenparameterspalte abrufen

In diesem Artikel stellen wir Ihnen das Prozessmanagement-Tool „pm2“ von Node vor und sprechen darüber, warum PM2 benötigt wird und wie Sie PM2 installieren und verwenden. Ich hoffe, dass es für alle hilfreich ist!

Vorwort In diesem Artikel wird weiterhin das Python-Sammlungsmodul vorgestellt. Dieses Mal werden hauptsächlich die darin enthaltenen benannten Tupel vorgestellt, dh die Verwendung von benannten Tupeln. Fangen wir ohne Umschweife an – denken Sie daran, „Gefällt mir“, „Folgen“ und „Weiterleiten“ zu markieren. Sie können überall dort verwendet werden, wo reguläre Tupel verwendet werden, und bieten die Möglichkeit, auf Felder über den Namen statt über den Positionsindex zuzugreifen. Es stammt aus den in Python integrierten Modulsammlungen. Die verwendete allgemeine Syntax lautet: Sammlungen importieren XxNamedT

Detaillierte Erläuterungs- und Installationshandbuch für Pinetwork -Knoten In diesem Artikel wird das Pinetwork -Ökosystem im Detail vorgestellt - PI -Knoten, eine Schlüsselrolle im Pinetwork -Ökosystem und vollständige Schritte für die Installation und Konfiguration. Nach dem Start des Pinetwork -Blockchain -Testnetzes sind PI -Knoten zu einem wichtigen Bestandteil vieler Pioniere geworden, die aktiv an den Tests teilnehmen und sich auf die bevorstehende Hauptnetzwerkveröffentlichung vorbereiten. Wenn Sie Pinetwork noch nicht kennen, wenden Sie sich bitte an was Picoin ist? Was ist der Preis für die Auflistung? PI -Nutzung, Bergbau und Sicherheitsanalyse. Was ist Pinetwork? Das Pinetwork -Projekt begann 2019 und besitzt seine exklusive Kryptowährung PI -Münze. Das Projekt zielt darauf ab, eine zu erstellen, an der jeder teilnehmen kann

Das Funktionsprinzip von Ansible kann aus der obigen Abbildung verstanden werden: Die Verwaltungsseite unterstützt drei Methoden: Lokal, SSH und Zeromq, um eine Verbindung zur verwalteten Seite herzustellen. Dieser Teil entspricht der Verbindung Im obigen Architekturdiagramm können Sie den Anwendungstyp HostInventory (Hostliste) verwenden, um entsprechende Vorgänge über verschiedene Module zu implementieren und einen einzelnen Befehl auszuführen -hoc; Der Verwaltungsknoten kann eine Reihe von Aufgaben über Playbooks implementieren, z. B. die Installation und Bereitstellung von Webdiensten, die Stapelsicherung von Datenbankservern usw. Wir können Playbooks einfach so verstehen, wie das System vergeht
