Ausgehend von der Typbeurteilung In JavaScript ist die Überprüfung von Variablentypen sehr mühsam. Wenn Sie einfach Hier sind einige einfache: console.log(Typ von null) // 'Objekt' console.log(Typ des neuen Arrays) // 'Objekt' console.log(Typ des neuen Strings) // 'Objekt' Später entdeckten alle, dass const getTypeString = obj => Object.prototype.toString.call(obj) getTypeString(null) // '[Objekt Null]' getTypeString('string') //'[Objekt String]' getTypeString(neuer String) //'[Objekt String]' Durch Proxying const getTypeString = obj => { gibt Object.prototype.toString.call(obj) zurück } const istTyp = Typ => { return obj => { return getTypeString(obj) === `[Objekt ${Typ}]` } } const isArray = isType('Array') // Diese Methode wird grundsätzlich durch Array.isArray ersetzt const isNull = isType('Null') const isObject = isType('Objekt') const isRegExp = isType('RegExp') const isFunction = isType('Funktion') const isAsyncFunction = isType('AsyncFunction') isNull(null) // wahr isObject({}) // wahr isRegExp(/\w/) // wahr istFunktion(() => {}) // wahr istAsyncFunktion(async () => {}) // wahr Aber in Node.js gibt es tatsächlich eine Reihe von APIs zum Bestimmen von Variablentypen. Und es verfügt über äußerst umfangreiche Funktionen. Neben der Beurteilung grundlegender Typen unterstützt es auch die Beurteilung von Promise-Objekten, Date-Objekten und verschiedenen ArrayBuffern. const-Typen = erfordern('util/Typen') Typen.isDate(neues Datum) // wahr Typen.isPromise(neues Promise(() => {})) // wahr Typen.isArrayBuffer(neuer ArrayBuffer(16)) // wahr Strikte Gleichheit Wenn in JavaScript die Gleichheit von Objekten, Arrays und anderen Variablen beurteilt wird und const util = erfordern('util') const val1 = { name: 'shenfq' } const val2 = { name: 'shenfq' } console.log('val1 === val2', val1 === val2) // falsch console.log('isDeepStrictEqual', util.isDeepStrictEqual(Wert1, Wert2)) // wahr Mit dieser Methode lässt sich auch ermitteln, ob Arrays strikt gleich sind: const util = erfordern('util') const arr1 = [1, 3, 5] const arr2 = [1, 3, 5] console.log('arr1 === arr2', arr1 === arr2) // falsch console.log('isDeepStrictEqual', util.isDeepStrictEqual(arr1, arr2)) // wahr Fehler zuerst und Versprechen Frühe Node-APIs waren alle // Hier ist ein Beispiel für das Lesen einer Datei const fs = require('fs') fs.readFile('nginx.log', (Fehler, Daten) => { if (Fehler) { // Fehler beim Lesen der Datei console.error(error) zurückkehren } // Datei erfolgreich gelesen, Ergebnis ausdrucken console.log(data) }) Als Node 8 veröffentlicht wurde, wurde eine neue const fs = erfordern('fs') const util = erfordern('util') const readFile = util.promisify(fs.readFile) Datei lesen('./2021-11-11.log', { Kodierung: 'utf-8' }) .then(text => konsole.log(text)) .catch(Fehler => Konsole.Fehler(Fehler)) Viele Leute waren jedoch später der Meinung, dass die Art und Weise, wie diese nativen APIs Promise unterstützen, zu umständlich ist und jede API mit einer separaten const fs = require('fs').versprechen fs.readFile('./2021-11-11.log', { Kodierung: 'utf-8' }) .then(text => konsole.log(text)) .catch(Fehler => Konsole.Fehler(Fehler)) Hinweis: Nach Knoten 14 wird eine neue Möglichkeit zum Importieren const fs = erfordern('fs/versprechen') fs.readFile('./2021-11-11.log', { Kodierung: 'utf-8' }) .then(text => konsole.log(text)) .catch(Fehler => Konsole.Fehler(Fehler)) Zusätzlich zur Konvertierung Als Nächstes wird const fs = erfordern('fs/versprechen') const util = erfordern('util') const readFile = util.callbackify(fs.readFile) readFile('./2021-11-12.log', { Kodierung: 'utf-8' }, (Fehler, Text) => { if (Fehler) { Konsole.Fehler(Fehler) zurückkehren } console.log(text) }) Debuggen und Ausgabe Wenn Sie einen Node-Dienst entwickelt haben, sollten Sie das const debug = erfordern('debug') const log = debug('App') const Benutzer = { Name: 'shenfq' } log('Aktueller Benutzer: %o', Benutzer) Tatsächlich kann ein ähnlicher Effekt durch const debug = erfordern('debug') const log = debug('App') const Benutzer = { Name: 'shenfq' } log('Aktueller Benutzer: %o', Benutzer) Ersetzen Sie beim Start einfach die Umgebungsvariable Wenn Sie sich den obigen Code genau ansehen, werden Sie feststellen, dass in der Zeichenfolge vor const { format } = erfordern('util'). konsole.log( format('Aktueller Benutzer: %o', { Name: 'shenfq', Alter: 25 }) ) Zusätzlich zum Platzhalter
Objekte in JavaScript sind sehr komplex. Neben der direkten Verwendung von const { inspizieren } = erfordern('util') const Benutzer = { Alter: 25, Name: 'shenfq', arbeiten: Name: 'Kodierung', Dienstalter: 5 } } console.log(inspect(Benutzer)) Es scheint, dass Natürlich ist das oben genannte nur ein Teil der Konfiguration. Eine detailliertere Konfiguration finden Sie in der Knotendokumentation. Nachfolgend schreiben wir ein paar Beispiele: Alle Eigenschaften werden mit Zeilenumbrüchen angezeigt: inspizieren(Benutzer, { kompakt: falsch }) Formatieren Sie nur den Wert der ersten Ebene eines Objekts: inspizieren(Benutzer, { Tiefe: 0, kompakt: falsch }) Ausgabe in umgekehrter Reihenfolge entsprechend der Schlüsselwertkodierung: inspizieren(Benutzer, { kompakt: falsch, sortiert: (a, b) => a < b ? 1 : -1 }) Oben finden Sie den detaillierten Inhalt des Tutorial-Beispiels des Util-Moduls in node.js. Weitere Informationen zum Util-Modul in node.js finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Grundlegende Verwendung von Unterabfragen in MySQL
Inhaltsverzeichnis 1. Betrieb der Datenbank 1.1 E...
Vorwort Da immer wieder Fehler auftreten, protoko...
<br />In diesem Artikel wurden die verschied...
1. Aktivieren Sie den Remotezugriff auf den Docke...
Inhaltsverzeichnis 1. MySQL-Zeittyp 2. Überprüfen...
Wie können Sie das Lamaging von Routen vergessen,...
Effektbild: Implementierungscode: <Vorlage>...
Öffnen Sie das Verbindungstool. Ich verwende Moba...
Inhaltsverzeichnis Was sind unveränderliche Werte...
Was ist Textumbruch um Bilder? Dies ist die Auswi...
Bei der .net-Entwicklung bin ich eher mit der SQL...
In diesem Artikel wird der der Java-Verbindung zu...
Inhaltsverzeichnis Vorwort 1. Umgebungskonfigurat...
1. Zuerst erstellen wir eine JSON-Datei zur inter...
1. Befehlseinführung Der Befehl „Watch“ führt den...