


Analyse der modul- und paketbasierten Codebereitstellungsmethode von Node.js_node.js
Regeln zur Modulpfadauflösung
Erfahrene C-Programmierer beginnen mit der Make-Datei, wenn sie ein neues Programm schreiben. Bevor Sie NodeJS zum Schreiben eines Programms verwenden, müssen Sie für einen guten Start zunächst die Verzeichnisstruktur und die Bereitstellungsmethode des Codes vorbereiten, genau wie beim Bau eines Gerüsts bei der Reparatur eines Hauses. In diesem Kapitel werden verschiedene verwandte Kenntnisse vorgestellt.
Regeln zur Modulpfadauflösung
Wir wissen bereits, dass die Funktion require absolute Pfade unterstützt, die mit einem Schrägstrich (/) oder einem Laufwerksbuchstaben (C:) beginnen, und auch relative Pfade, die mit ./ beginnen. Diese beiden Pfade stellen jedoch eine starke Kopplungsbeziehung zwischen Modulen her. Sobald der Speicherort einer Moduldatei geändert werden muss, muss auch der Code anderer Module, die dieses Modul verwenden, entsprechend angepasst werden, was zu einem Problem für den gesamten Körper wird . Daher unterstützt die Anforderungsfunktion die dritte Pfadform, die ähnlich wie foo/bar geschrieben ist, und analysiert den Pfad nacheinander gemäß den folgenden Regeln, bis der Modulspeicherort gefunden wird.
Eingebaute Module
Wenn der an die Anforderungsfunktion übergebene Name ein in NodeJS integrierter Modulname ist, wird keine Pfadanalyse durchgeführt und das exportierte Objekt des internen Moduls wird direkt zurückgegeben, z. B. require('fs').
node_modules-Verzeichnis
NodeJS definiert ein spezielles node_modules-Verzeichnis zum Speichern von Modulen. Der absolute Pfad eines Moduls lautet beispielsweise /home/user/hello.js. Wenn die Methode require('foo/bar') zum Laden des Moduls verwendet wird, versucht NodeJS, die folgenden Pfade nacheinander zu verwenden .
/home/user/node_modules/foo/bar /home/node_modules/foo/bar /node_modules/foo/bar
NODE_PATH Umgebungsvariable
Ähnlich wie die Umgebungsvariable PATH ermöglicht NodeJS die Angabe zusätzlicher Modulsuchpfade über die Umgebungsvariable NODE_PATH. Die Umgebungsvariable NODE_PATH enthält einen oder mehrere Verzeichnispfade. Die Pfade werden durch : unter Linux und ; unter Windows getrennt. Beispielsweise ist die folgende Umgebungsvariable NODE_PATH definiert:
NODE_PATH=/home/user/lib:/home/lib
Wenn Sie require('foo/bar') zum Laden eines Moduls verwenden, versucht NodeJS nacheinander die folgenden Pfade.
/home/user/lib/foo/bar /home/lib/foo/bar
Packen
Wir wissen bereits, dass die Grundeinheit eines JS-Moduls eine einzelne JS-Datei ist, komplexere Module bestehen jedoch häufig aus mehreren Untermodulen. Um die Verwaltung und Verwendung zu erleichtern, können wir ein großes Modul, das aus mehreren Untermodulen besteht, als Paket bezeichnen und alle Untermodule im selben Verzeichnis ablegen.
Unter allen Untermodulen, aus denen ein Paket besteht, muss es ein Einstiegsmodul geben, und das Exportobjekt des Einstiegsmoduls wird als Exportobjekt des Pakets verwendet. Beispielsweise gibt es die folgende Verzeichnisstruktur.
- /home/user/lib/ - cat/ head.js body.js main.js
Das Cat-Verzeichnis definiert ein Paket, das 3 Untermodule enthält. main.js dient als Einstiegsmodul und hat folgenden Inhalt:
var head = require('./head'); var body = require('./body'); exports.create = function (name) { return { name: name, head: head.create(), body: body.create() }; };
Wenn Sie ein Paket in anderen Modulen verwenden, müssen Sie das Einstiegsmodul des Pakets laden. Um mit dem obigen Beispiel fortzufahren, kann die Verwendung von require('/home/user/lib/cat/main') das Ziel erreichen, aber es scheint keine gute Idee zu sein, wenn der Name des Eingabemoduls im Pfad erscheint. Wir müssen also ein wenig zusätzliche Arbeit leisten, damit sich das Paket eher wie ein einzelnes Modul verhält.
index.js
Wenn der Dateiname des Moduls index.js lautet, können Sie beim Laden des Moduls den Pfad des Verzeichnisses verwenden, in dem sich das Modul befindet, anstelle des Moduldateipfads. Befolgen Sie daher die folgenden beiden Aussagen sind gleichwertig.
var cat = require('/home/user/lib/cat'); var cat = require('/home/user/lib/cat/index');
Nach der Verarbeitung auf diese Weise müssen Sie nur noch den Paketverzeichnispfad an die Anforderungsfunktion übergeben. Es fühlt sich an, als würde das gesamte Verzeichnis als einzelnes Modul verwendet, was ein ganzheitlicheres Gefühl vermittelt.
package.json
Wenn Sie den Dateinamen und den Speicherort des Einstiegsmoduls anpassen möchten, müssen Sie eine package.json-Datei in das Paketverzeichnis einfügen und darin den Pfad des Einstiegsmoduls angeben. Das Cat-Modul im obigen Beispiel kann wie folgt umgestaltet werden.
- /home/user/lib/ - cat/ + doc/ - lib/ head.js body.js main.js + tests/ package.json
Der Inhalt von package.json ist wie folgt.
{ "name": "cat", "main": "./lib/main.js" }
Auf diese Weise können Sie auch require('/home/user/lib/cat') verwenden, um das Modul zu laden. NodeJS findet den Speicherort des Einstiegsmoduls basierend auf package.json im Paketverzeichnis.

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.

Der nicht blockierende und ereignisgesteuerte Knotendienst hat den Vorteil eines geringen Speicherverbrauchs und eignet sich sehr gut für die Verarbeitung massiver Netzwerkanforderungen. Unter der Voraussetzung massiver Anfragen müssen Probleme im Zusammenhang mit der „Speicherkontrolle“ berücksichtigt werden. 1. Der Garbage-Collection-Mechanismus und die Speicherbeschränkungen von V8 Js wird von der Garbage-Collection-Maschine gesteuert

Das Dateimodul ist eine Kapselung der zugrunde liegenden Dateioperationen, wie z. B. Lesen/Schreiben/Öffnen/Schließen/Löschen von Dateien, Hinzufügen usw. Das größte Merkmal des Dateimoduls besteht darin, dass alle Methoden zwei Versionen von **synchronem** und **bereitstellen. asynchron**, mit Methoden mit dem Suffix sync sind alle Synchronisationsmethoden, und diejenigen ohne sind alle heterogene Methoden.

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

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

Die Ereignisschleife ist ein grundlegender Bestandteil von Node.js und ermöglicht die asynchrone Programmierung, indem sie sicherstellt, dass der Hauptthread nicht blockiert wird. Das Verständnis der Ereignisschleife ist für die Erstellung effizienter Anwendungen von entscheidender Bedeutung. Der folgende Artikel wird Ihnen ein detailliertes Verständnis der Ereignisschleife in Node vermitteln. Ich hoffe, er wird Ihnen hilfreich sein!

Alle Daten werden zu Beginn automatisch mit einem „DOB“ (Geburtsdatum) versehen. Daher ist es unvermeidlich, dass bei der Verarbeitung von Daten irgendwann Datums- und Uhrzeitdaten auftreten. Dieses Tutorial führt Sie durch das Datetime-Modul in Python und die Verwendung einiger Peripheriebibliotheken wie Pandas und Pytz. In Python wird alles, was mit Datum und Uhrzeit zu tun hat, vom datetime-Modul verarbeitet, das das Modul weiter in fünf verschiedene Klassen unterteilt. Klassen sind einfach Datentypen, die Objekten entsprechen. Die folgende Abbildung fasst die fünf Datetime-Klassen in Python zusammen mit häufig verwendeten Attributen und Beispielen zusammen. 3 nützliche Snippets 1. Konvertieren Sie einen String in das Datetime-Format, möglicherweise mit datet
