Implementierung integrierter Module und benutzerdefinierter Module in Node.js

Implementierung integrierter Module und benutzerdefinierter Module in Node.js

1. Commonjs

  • Commonjs ist ein benutzerdefiniertes Modul in nodejs
  • Die Commonjs-Spezifikation wurde vorgeschlagen, um den Mangel an Standards in JavaScript auszugleichen und eine Standardbibliothek ähnlich der Back-End-Sprache bereitzustellen. Mit anderen Worten: commonjs ist ein modularer Standard und nodejs ist die modulare Implementierung von commonjs. In nodejs sind sie, mit Ausnahme von http, url, fs usw., alle integrierte Module von nodejs und können direkt verwendet werden.
  • Implementierung von benutzerdefinierten Modulen in CommonJS:
  • In nodejs werden öffentliche Funktionen als Module in separate js-Dateien extrahiert, auf die von außen nicht zugegriffen werden kann (ähnlich wie die privaten Eigenschaften und Methoden des Backends). Wenn Sie das Modul verwenden möchten, müssen Sie die Eigenschaften oder Methoden im Modul über Exporte oder module.exports verfügbar machen. Verwenden Sie „require“, um das Modul bei Bedarf zu importieren.

2. Zwei Lösungen für den Modulexport

Lösung 1

lass str={};
modul.exporte=str;

Lösung 2

lass str={};
Exporte.A=str;

3. Benutzerdefinierte Module schreiben

allgemein.js

// Integrierte Module und benutzerdefinierte Module im Knoten // Das Modul exportiert zwei Lösungen let str={};
modul.exporte=str;
Exporte.A=str;

// Um ​​ein Modul zu importieren, verwenden Sie require(""), um das Modul zu laden let todo = require("./todo"); // Das Suffix kann weggelassen werden console.log(todo);

todo.js

module.exports={
   Name: „Zhang San“,
   Schlaf:Funktion(){
       console.log("schlafen");
   }
}

oder

module.exports={
   Name: „Zhang San“,
   Schlaf:Funktion(){
       console.log("schlafen");
   }
}
  • Bei require() im Knoten können Sie den Namen beim Laden eines Moduls direkt schreiben, es muss jedoch unter der Abhängigkeit geladen werden und es muss eine Konfigurationsdatei generiert werden.
  • Geben Sie die Abhängigkeitsdatei im Terminal ein und installieren Sie die Konfigurationsdatei
  • Nodejs kann Dateien automatisch unter der Datei node_modules finden: Wenn sich unter der Datei node_modules ein Ordner befindet, können Sie diese Datei mit cd aufrufen und mit dem Befehl cnpm init --yes die Datei package.json der aktuellen Datei installieren und require("name"); direkt anfordern.

Fall 1

allgemein.js

// Um ​​ein Modul zu importieren, verwenden Sie require(""), um das Modul zu laden let todo = require("./todo"); // Das Suffix kann weggelassen werden console.log(todo);

// Wenn require() in node verwendet wird, kannst du beim Laden eines Moduls den Namen direkt schreiben, es muss jedoch unter der Abhängigkeit geladen werden und eine Konfigurationsdatei muss generiert werden // Gib die Abhängigkeitsdatei in das Terminal ein und installiere die Konfigurationsdatei let fetch=require("Fetch");
Konsole.log(abrufen);
fetch.get("http://www.zjm.com");

Fetch.js

module.exports={
   bekomme(URL){
       konsole.log(url);
   }
}

Fall 2

allgemein.js

Lassen Sie Axios = erfordern("Axios");
let url = "https://autumnfish.cn/search";
let data = { Schlüsselwörter: ‚Xi‘an‘ };
const http = erfordern("http");
let app = http.createServer((req, res) => {
   res.writeHead(200, { "Inhaltstyp": "text/html; Zeichensatz=utf-8" });
   Axios.get(url, { params: data }).then((Ergebnis) => {
       res.write(Ergebnis);
       res.ende();
   });
});
app.listen(8080)

Axios.js

const http = erfordern("http");
const https = erfordern("https");
//Konvertierungsmethode let change = (args) => {
   lass str = "?";
   für (let-Schlüssel in Argumenten) {
       str += Schlüssel + "=" + args[Schlüssel];
       str += "&";
   }
   gibt str.slice(0, str.length - 1) zurück;
}
modul.exporte = {
   erhalte(href, { Parameter }) {
       returniere neues Promise((lösen, ablehnen) => {
           href += ändern(Parameter);
           https.get(href, (res) => {
               let { statusCode } = res;
               lass Fehler;
               wenn (Statuscode != 200) {
                   Fehler = neuer Fehler('Anforderung fehlgeschlagen.\n' +
                       `Statuscode: ${statusCode}`);
               }
               if (Fehler) {
                   konsole.fehler(fehler.nachricht);
                   // Antwortdaten verbrauchen, um Speicher freizugeben
                   res.Lebenslauf();
                   zurückkehren;
               }
               //Antwortkodierung festlegen res.setEncoding("utf8");
               lassen Sie alle Daten = "";
               //Überwachen Sie datares.on("data", (info) => {
                   alle Daten += Info;
               })
               res.on("Ende", () => {
                   lass Daten = alle Daten;
                   auflösen (Daten);
               })
           });
       });
   },
   Post() {

   }
}

Dies ist das Ende dieses Artikels über die Implementierung integrierter und benutzerdefinierter Module in Node.js. Weitere relevante integrierte und benutzerdefinierte Module von Node.js finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Eine kurze Einführung in das Front-End-Progressive-Framework VUE
  • Detaillierte Erklärung des Beispielcodes des Vuex Progressive-Tutorials
  • Detaillierte Erläuterung der Konfiguration der Spring Boot-Webanwendung
  • Beispielcode zum Erstellen einer Webanwendung mit Spring Boot
  • Fehlerbehebung bei hohem Speicherverbrauch von NodeJs, tatsächlicher Kampfrekord
  • Detaillierte Erläuterung der Verwendung des in Nodejs integrierten Verschlüsselungsmoduls zur Peer-to-Peer-Verschlüsselung und -Entschlüsselung
  • So nutzen Sie die Multi-Core-CPU in node.js voll aus
  • Zusammenfassung einiger Tipps zum Umgehen der Node.js-Codeausführung
  • So entwickeln Sie eine Progressive Web App (PWA)

<<:  Detaillierte Erläuterung der Methoden zur Überprüfung und Verwaltung von MySQL-Benutzerrechten

>>:  So konfigurieren Sie Linux CentOS für die regelmäßige Ausführung von Skripten

Artikel empfehlen

Der Unterschied zwischen den Feldtypen char, varchar und Text in MySQL

In MySQL können alle Felder der Typen char, varch...

Docker+Gitlab+Jenkins erstellt automatisierte Bereitstellung von Grund auf

Inhaltsverzeichnis Vorwort: 1. Docker installiere...

Vue implementiert das Hinzufügen eines Wasserzeicheneffekts zur Seite

Als ich kürzlich an einem Projekt arbeitete, wurd...

Tutorial zur Verwendung des iostat-Befehls unter Linux

Vorwort Es wird gesagt, dass sich die für Betrieb...

JavaScript-Array-Deduplizierungslösung

Inhaltsverzeichnis Methode 1: Set: Es handelt sic...

Standards zum Schreiben von Codekommentaren bei der Webseitenerstellung

<br />Ich habe die in meiner Arbeit verwende...

Detaillierte Erklärung und Zusammenfassung der URL zur Datenbankverbindung

Detaillierte Erklärung und Zusammenfassung der UR...

Detaillierte Erklärung des Vue-Slots

1. Funktion : Ermöglicht der übergeordneten Kompo...

ReactHooks Batch-Update-Status und Abrufen von Routenparametern Beispielanalyse

Inhaltsverzeichnis 1. So führen Sie stapelweise U...

Der Unterschied zwischen Datenzeit und Zeitstempel in MySQL

In MySQL gibt es drei Datumstypen: Datum (Jahr-Mo...