Node.js v26.0.0 Dokumentation
- Node.js v26.0.0
- Inhaltsverzeichnis
- Util
util.callbackify(original)util.convertProcessSignalToExitCode(signal)util.debuglog(section[, callback])util.debug(section)util.deprecate(fn, msg[, code[, options]])util.diff(actual, expected)util.format(format[, ...args])util.formatWithOptions(inspectOptions, format[, ...args])util.getCallSites([frameCount][, options])util.getSystemErrorName(err)util.getSystemErrorMap()util.getSystemErrorMessage(err)util.setTraceSigInt(enable)util.inherits(constructor, superConstructor)util.inspect(object[, options])util.inspect(object[, showHidden[, depth[, colors]]])util.isDeepStrictEqual(val1, val2[, options])- Klasse:
util.MIMEType - Klasse:
util.MIMEParams util.parseArgs([config])util.parseEnv(content)util.promisify(original)util.stripVTControlCharacters(str)util.styleText(format, text[, options])- Klasse:
util.TextDecoder - Klasse:
util.TextEncoder util.toUSVString(string)util.transferableAbortController()util.transferableAbortSignal(signal)util.aborted(signal, resource)util.typesutil.types.isAnyArrayBuffer(value)util.types.isArrayBufferView(value)util.types.isArgumentsObject(value)util.types.isArrayBuffer(value)util.types.isAsyncFunction(value)util.types.isBigInt64Array(value)util.types.isBigIntObject(value)util.types.isBigUint64Array(value)util.types.isBooleanObject(value)util.types.isBoxedPrimitive(value)util.types.isCryptoKey(value)util.types.isDataView(value)util.types.isDate(value)util.types.isExternal(value)util.types.isFloat16Array(value)util.types.isFloat32Array(value)util.types.isFloat64Array(value)util.types.isGeneratorFunction(value)util.types.isGeneratorObject(value)util.types.isInt8Array(value)util.types.isInt16Array(value)util.types.isInt32Array(value)util.types.isKeyObject(value)util.types.isMap(value)util.types.isMapIterator(value)util.types.isModuleNamespaceObject(value)util.types.isNativeError(value)util.types.isNumberObject(value)util.types.isPromise(value)util.types.isProxy(value)util.types.isRegExp(value)util.types.isSet(value)util.types.isSetIterator(value)util.types.isSharedArrayBuffer(value)util.types.isStringObject(value)util.types.isSymbolObject(value)util.types.isTypedArray(value)util.types.isUint8Array(value)util.types.isUint8ClampedArray(value)util.types.isUint16Array(value)util.types.isUint32Array(value)util.types.isWeakMap(value)util.types.isWeakSet(value)
- Veraltete APIs
- Util
- Index
- Über diese Dokumentation
- Verwendung und Beispiel
- Assertion-Tests
- Asynchrone Kontextverfolgung
- Async-Hooks
- Buffer
- C++-Add-ons
- C/C++-Add-ons mit Node-API
- C++-Embedder-API
- Kindprozesse
- Cluster
- Kommandozeilenoptionen
- Konsole
- Crypto
- Debugger
- Veraltete APIs
- Diagnostics Channel
- DNS
- Domain
- Umgebungsvariablen
- Fehler
- Events
- Dateisystem
- Globale Objekte
- HTTP
- HTTP/2
- HTTPS
- Inspector
- Internationalisierung
- Module: CommonJS-Module
- Module: ECMAScript-Module
- Module:
node:module-API - Module: Pakete
- Module: TypeScript
- Net
- Iterable Streams API
- OS
- Path
- Performance-Hooks
- Berechtigungen
- Process
- Punycode
- Query-Strings
- Readline
- REPL
- Report
- Einzelne ausführbare Anwendungen
- SQLite
- Stream
- String-Decoder
- Test-Runner
- Timer
- TLS/SSL
- Trace-Events
- TTY
- UDP/Datagramm
- URL
- Utilities
- V8
- VM
- WASI
- Web Crypto API
- Web Streams API
- Worker-Threads
- Zlib
- Zlib Iterable Compression
- Andere Versionen
- Optionen
Util#
Stabilität: 2 - Stabil
Das node:util-Modul unterstützt die Anforderungen der internen APIs von Node.js. Viele der Dienstprogramme sind auch für Anwendungs- und Modulentwickler nützlich. Zugriff darauf:
import util from 'node:util';const util = require('node:util');
util.callbackify(original)#
original<Function>Eineasync-Funktion- Rückgabe:
<Function>eine Funktion im Callback-Stil
Nimmt eine async-Funktion (oder eine Funktion, die ein Promise zurückgibt) und gibt eine Funktion zurück, die dem Error-First-Callback-Stil folgt, d. h. sie akzeptiert ein (err, value) => ...-Callback als letztes Argument. Im Callback ist das erste Argument der Grund für die Ablehnung (oder null, wenn das Promise erfolgreich aufgelöst wurde) und das zweite Argument ist der aufgelöste Wert.
import { callbackify } from 'node:util'; async function fn() { return 'hello world'; } const callbackFunction = callbackify(fn); callbackFunction((err, ret) => { if (err) throw err; console.log(ret); });const { callbackify } = require('node:util'); async function fn() { return 'hello world'; } const callbackFunction = callbackify(fn); callbackFunction((err, ret) => { if (err) throw err; console.log(ret); });
Wird ausgeben
hello world
Der Callback wird asynchron ausgeführt und hat einen begrenzten Stack-Trace. Wenn der Callback eine Ausnahme wirft, sendet der Prozess ein 'uncaughtException'-Ereignis; wenn dieses nicht behandelt wird, beendet sich der Prozess.
Da null eine besondere Bedeutung als erstes Argument eines Callbacks hat, wird der Wert in einen Error eingepackt, falls eine eingepackte Funktion ein Promise mit einem falsy Wert ablehnt. Der ursprüngliche Wert wird in einem Feld namens reason gespeichert.
function fn() {
return Promise.reject(null);
}
const callbackFunction = util.callbackify(fn);
callbackFunction((err, ret) => {
// When the Promise was rejected with `null` it is wrapped with an Error and
// the original value is stored in `reason`.
err && Object.hasOwn(err, 'reason') && err.reason === null; // true
});
util.convertProcessSignalToExitCode(signal)#
signal<string>Ein Signalname (z. B.'SIGTERM')- Rückgabe:
<number>Der demsignalentsprechende Exit-Code
Die Methode util.convertProcessSignalToExitCode() wandelt einen Signalnamen in den entsprechenden POSIX-Exit-Code um. Gemäß dem POSIX-Standard wird der Exit-Code für einen Prozess, der durch ein Signal beendet wurde, als 128 + Signalnummer berechnet.
Wenn signal kein gültiger Signalname ist, wird ein Fehler geworfen. Siehe signal(7) für eine Liste gültiger Signale.
import { convertProcessSignalToExitCode } from 'node:util'; console.log(convertProcessSignalToExitCode('SIGTERM')); // 143 (128 + 15) console.log(convertProcessSignalToExitCode('SIGKILL')); // 137 (128 + 9)const { convertProcessSignalToExitCode } = require('node:util'); console.log(convertProcessSignalToExitCode('SIGTERM')); // 143 (128 + 15) console.log(convertProcessSignalToExitCode('SIGKILL')); // 137 (128 + 9)
Dies ist besonders nützlich, wenn mit Prozessen gearbeitet wird, um den Exit-Code basierend auf dem Signal zu bestimmen, das den Prozess beendet hat.
util.debuglog(section[, callback])#
section<string>Eine Zeichenfolge, die den Teil der Anwendung identifiziert, für den diedebuglog-Funktion erstellt wird.callback<Function>Ein Callback, der beim ersten Aufruf der Logging-Funktion mit einem Funktionsargument aufgerufen wird, das eine optimiertere Logging-Funktion darstellt.- Rückgabe:
<Function>die Logging-Funktion
Die Methode util.debuglog() wird verwendet, um eine Funktion zu erstellen, die bedingt Debug-Nachrichten in stderr schreibt, basierend auf dem Vorhandensein der Umgebungsvariablen NODE_DEBUG. Wenn der section-Name innerhalb des Wertes dieser Umgebungsvariable erscheint, arbeitet die zurückgegebene Funktion ähnlich wie console.error(). Falls nicht, ist die zurückgegebene Funktion ein No-Op.
import { debuglog } from 'node:util'; const log = debuglog('foo'); log('hello from foo [%d]', 123);const { debuglog } = require('node:util'); const log = debuglog('foo'); log('hello from foo [%d]', 123);
Wenn dieses Programm mit NODE_DEBUG=foo in der Umgebung ausgeführt wird, gibt es etwa Folgendes aus:
FOO 3245: hello from foo [123]
wobei 3245 die Prozess-ID ist. Wenn es ohne diese gesetzte Umgebungsvariable ausgeführt wird, druckt es nichts.
Die section unterstützt auch Wildcards:
import { debuglog } from 'node:util'; const log = debuglog('foo-bar'); log('hi there, it\'s foo-bar [%d]', 2333);const { debuglog } = require('node:util'); const log = debuglog('foo-bar'); log('hi there, it\'s foo-bar [%d]', 2333);
Wenn es mit NODE_DEBUG=foo* in der Umgebung ausgeführt wird, gibt es etwa Folgendes aus:
FOO-BAR 3257: hi there, it's foo-bar [2333]
Mehrere durch Kommas getrennte section-Namen können in der Umgebungsvariablen NODE_DEBUG angegeben werden: NODE_DEBUG=fs,net,tls.
Das optionale callback-Argument kann verwendet werden, um die Logging-Funktion durch eine andere Funktion zu ersetzen, die keine Initialisierung oder unnötiges Wrapping erfordert.
import { debuglog } from 'node:util'; let log = debuglog('internals', (debug) => { // Replace with a logging function that optimizes out // testing if the section is enabled log = debug; });const { debuglog } = require('node:util'); let log = debuglog('internals', (debug) => { // Replace with a logging function that optimizes out // testing if the section is enabled log = debug; });
debuglog().enabled#
- Typ:
<boolean>
Der Getter util.debuglog().enabled wird verwendet, um einen Test zu erstellen, der in Bedingungen basierend auf dem Vorhandensein der Umgebungsvariablen NODE_DEBUG verwendet werden kann. Wenn der section-Name im Wert dieser Umgebungsvariable erscheint, ist der Rückgabewert true. Wenn nicht, ist der Rückgabewert false.
import { debuglog } from 'node:util'; const enabled = debuglog('foo').enabled; if (enabled) { console.log('hello from foo [%d]', 123); }const { debuglog } = require('node:util'); const enabled = debuglog('foo').enabled; if (enabled) { console.log('hello from foo [%d]', 123); }
Wenn dieses Programm mit NODE_DEBUG=foo in der Umgebung ausgeführt wird, gibt es etwa Folgendes aus:
hello from foo [123]
util.debug(section)#
Alias für util.debuglog. Die Verwendung ermöglicht eine bessere Lesbarkeit, die kein Logging impliziert, wenn nur util.debuglog().enabled verwendet wird.
util.deprecate(fn, msg[, code[, options]])#
fn<Function>Die Funktion, die als veraltet markiert wird.msg<string>Eine Warnmeldung, die angezeigt wird, wenn die veraltete Funktion aufgerufen wird.code<string>Ein Veraltungscode. Siehe die Liste veralteter APIs für eine Liste der Codes.options<Object>modifyPrototype<boolean>Wenn false, wird der Prototyp des Objekts beim Ausgeben der Veraltungswarnung nicht geändert. Standard:true.
- Rückgabe:
<Function>Die veraltete Funktion, verpackt, um eine Warnung auszugeben.
Die Methode util.deprecate() umschließt fn (was eine Funktion oder Klasse sein kann) auf eine Weise, dass sie als veraltet markiert ist.
import { deprecate } from 'node:util'; export const obsoleteFunction = deprecate(() => { // Do something here. }, 'obsoleteFunction() is deprecated. Use newShinyFunction() instead.');const { deprecate } = require('node:util'); exports.obsoleteFunction = deprecate(() => { // Do something here. }, 'obsoleteFunction() is deprecated. Use newShinyFunction() instead.');
Beim Aufruf gibt util.deprecate() eine Funktion zurück, die eine DeprecationWarning über das 'warning'-Ereignis ausgibt. Die Warnung wird beim ersten Aufruf der zurückgegebenen Funktion ausgegeben und an stderr gedruckt. Nach der Ausgabe der Warnung wird die umschlossene Funktion aufgerufen, ohne eine weitere Warnung auszugeben.
Wenn derselbe optionale code in mehreren Aufrufen von util.deprecate() angegeben wird, wird die Warnung nur einmal für diesen code ausgegeben.
import { deprecate } from 'node:util'; const fn1 = deprecate( () => 'a value', 'deprecation message', 'DEP0001', ); const fn2 = deprecate( () => 'a different value', 'other dep message', 'DEP0001', ); fn1(); // Emits a deprecation warning with code DEP0001 fn2(); // Does not emit a deprecation warning because it has the same codeconst { deprecate } = require('node:util'); const fn1 = deprecate( function() { return 'a value'; }, 'deprecation message', 'DEP0001', ); const fn2 = deprecate( function() { return 'a different value'; }, 'other dep message', 'DEP0001', ); fn1(); // Emits a deprecation warning with code DEP0001 fn2(); // Does not emit a deprecation warning because it has the same code
Wenn entweder die Befehlszeilen-Flags --no-deprecation oder --no-warnings verwendet werden oder wenn die Eigenschaft process.noDeprecation vor der ersten Veraltungswarnung auf true gesetzt wird, bewirkt die Methode util.deprecate() nichts.
Wenn die Befehlszeilen-Flags --trace-deprecation oder --trace-warnings gesetzt sind oder die Eigenschaft process.traceDeprecation auf true gesetzt ist, werden beim ersten Aufruf der veralteten Funktion eine Warnung und ein Stack-Trace an stderr gedruckt.
Wenn das Befehlszeilen-Flag --throw-deprecation gesetzt ist oder die Eigenschaft process.throwDeprecation auf true gesetzt ist, wird beim Aufruf der veralteten Funktion eine Ausnahme ausgelöst.
Das Befehlszeilen-Flag --throw-deprecation und die Eigenschaft process.throwDeprecation haben Vorrang vor --trace-deprecation und process.traceDeprecation.
util.diff(actual, expected)#
Stabilität: 1 - Experimentell
-
expected<Array>|<string>Der zweite zu vergleichende Wert -
Rückgabe:
<Array>Ein Array von Differenzeinträgen. Jeder Eintrag ist ein Array mit zwei Elementen -
Algorithmus-Komplexität: O(N*D), wobei
-
N die Gesamtlänge der beiden Sequenzen kombiniert ist (N = actual.length + expected.length)
-
D die Editierdistanz ist (die minimale Anzahl von Operationen, die erforderlich sind, um eine Sequenz in die andere umzuwandeln).
util.diff() vergleicht zwei Zeichenfolgen- oder Array-Werte und gibt ein Array von Differenzeinträgen zurück. Es verwendet den Myers-Diff-Algorithmus, um minimale Unterschiede zu berechnen, denselben Algorithmus, der intern von Fehlermeldungen bei Assertionen verwendet wird.
Wenn die Werte gleich sind, wird ein leeres Array zurückgegeben.
const { diff } = require('node:util');
// Comparing strings
const actualString = '12345678';
const expectedString = '12!!5!7!';
console.log(diff(actualString, expectedString));
// [
// [0, '1'],
// [0, '2'],
// [1, '3'],
// [1, '4'],
// [-1, '!'],
// [-1, '!'],
// [0, '5'],
// [1, '6'],
// [-1, '!'],
// [0, '7'],
// [1, '8'],
// [-1, '!'],
// ]
// Comparing arrays
const actualArray = ['1', '2', '3'];
const expectedArray = ['1', '3', '4'];
console.log(diff(actualArray, expectedArray));
// [
// [0, '1'],
// [1, '2'],
// [0, '3'],
// [-1, '4'],
// ]
// Equal values return empty array
console.log(diff('same', 'same'));
// []
util.format(format[, ...args])#
format<string>Eineprintf-ähnliche Formatzeichenfolge.
Die Methode util.format() gibt eine formatierte Zeichenfolge zurück, wobei das erste Argument als printf-ähnliche Formatzeichenfolge verwendet wird, die null oder mehr Format-Spezifikatoren enthalten kann. Jeder Spezifikator wird durch den konvertierten Wert aus dem entsprechenden Argument ersetzt. Unterstützte Spezifikatoren sind:
%s:Stringwird verwendet, um alle Werte außerBigInt,Objectund-0zu konvertieren.BigInt-Werte werden mit einemndargestellt, und Objekte, die weder eine benutzerdefiniertetoString-Funktion noch eineSymbol.toPrimitive-Funktion haben, werden mitutil.inspect()mit den Optionen{ depth: 0, colors: false, compact: 3 }inspiziert.%d:Numberwird verwendet, um alle Werte außerBigIntundSymbolzu konvertieren.%i:parseInt(value, 10)wird für alle Werte außerBigIntundSymbolverwendet.%f:parseFloat(value)wird für alle Werte außerSymbolverwendet.%j: JSON. Ersetzt durch die Zeichenfolge'[Circular]', falls das Argument zirkuläre Referenzen enthält.%o:Object. Eine Zeichenfolgenrepräsentation eines Objekts mit generischer JavaScript-Objektformatierung. Ähnlich wieutil.inspect()mit den Optionen{ showHidden: true, showProxy: true }. Dies zeigt das vollständige Objekt einschließlich nicht aufzählbarer Eigenschaften und Proxys.%O:Object. Eine Zeichenfolgenrepräsentation eines Objekts mit generischer JavaScript-Objektformatierung. Ähnlich wieutil.inspect()ohne Optionen. Dies zeigt das vollständige Objekt, ohne nicht aufzählbare Eigenschaften und Proxys.%c:CSS. Dieser Spezifikator wird ignoriert und überspringt jegliches CSS, das übergeben wird.%%: einzelnes Prozentzeichen ('%'). Dies verbraucht kein Argument.- Rückgabe:
<string>Die formatierte Zeichenfolge
Wenn ein Spezifikator kein entsprechendes Argument hat, wird er nicht ersetzt.
util.format('%s:%s', 'foo');
// Returns: 'foo:%s'
Werte, die nicht Teil der Formatzeichenfolge sind, werden mit util.inspect() formatiert, sofern ihr Typ nicht string ist.
Wenn mehr Argumente an die Methode util.format() übergeben werden als die Anzahl der Spezifikatoren, werden die zusätzlichen Argumente an die zurückgegebene Zeichenfolge angehängt, getrennt durch Leerzeichen.
util.format('%s:%s', 'foo', 'bar', 'baz');
// Returns: 'foo:bar baz'
Wenn das erste Argument keinen gültigen Format-Spezifikator enthält, gibt util.format() eine Zeichenfolge zurück, die die Verkettung aller Argumente getrennt durch Leerzeichen ist.
util.format(1, 2, 3);
// Returns: '1 2 3'
Wenn nur ein Argument an util.format() übergeben wird, wird es ohne jegliche Formatierung zurückgegeben.
util.format('%% %s');
// Returns: '%% %s'
util.format() ist eine synchrone Methode, die als Debugging-Werkzeug gedacht ist. Einige Eingabewerte können einen erheblichen Leistungsaufwand verursachen, der die Event-Loop blockieren kann. Verwenden Sie diese Funktion mit Vorsicht und niemals in einem Hot-Code-Pfad.
util.formatWithOptions(inspectOptions, format[, ...args])#
Diese Funktion ist identisch mit util.format(), außer dass sie ein inspectOptions-Argument akzeptiert, das Optionen angibt, die an util.inspect() weitergegeben werden.
util.formatWithOptions({ colors: true }, 'See object %O', { foo: 42 });
// Returns 'See object { foo: 42 }', where `42` is colored as a number
// when printed to a terminal.
util.getCallSites([frameCount][, options])#
Stabilität: 1.1 - Aktive Entwicklung
frameCount<integer>Optionale Anzahl von Frames, die als Call-Site-Objekte erfasst werden sollen. Standard:10. Der zulässige Bereich liegt zwischen 1 und 200.options<Object>Optional.sourceMap<boolean>Rekonstruiert den ursprünglichen Speicherort im Stack-Trace aus der Source-Map. Standardmäßig aktiviert mit dem Flag--enable-source-maps.
- Rückgabe:
<Object[]>Ein Array von Call-Site-ObjektenfunctionName<string>Gibt den Namen der mit dieser Call-Site verknüpften Funktion zurück.scriptName<string>Gibt den Namen der Ressource zurück, die das Skript für die Funktion dieser Call-Site enthält.scriptId<string>Gibt die eindeutige ID des Skripts zurück, wie im Chrome DevTools ProtocolRuntime.ScriptId.lineNumber<number>Gibt die Zeilennummer des JavaScript-Skripts zurück (1-basiert).columnNumber<number>Gibt die Spaltennummer des JavaScript-Skripts zurück (1-basiert).
Gibt ein Array von Call-Site-Objekten zurück, die den Stack der aufrufenden Funktion enthalten.
Im Gegensatz zum Zugriff auf error.stack wird das von dieser API zurückgegebene Ergebnis nicht durch Error.prepareStackTrace gestört.
import { getCallSites } from 'node:util'; function exampleFunction() { const callSites = getCallSites(); console.log('Call Sites:'); callSites.forEach((callSite, index) => { console.log(`CallSite ${index + 1}:`); console.log(`Function Name: ${callSite.functionName}`); console.log(`Script Name: ${callSite.scriptName}`); console.log(`Line Number: ${callSite.lineNumber}`); console.log(`Column Number: ${callSite.columnNumber}`); }); // CallSite 1: // Function Name: exampleFunction // Script Name: /home/example.js // Line Number: 5 // Column Number: 26 // CallSite 2: // Function Name: anotherFunction // Script Name: /home/example.js // Line Number: 22 // Column Number: 3 // ... } // A function to simulate another stack layer function anotherFunction() { exampleFunction(); } anotherFunction();const { getCallSites } = require('node:util'); function exampleFunction() { const callSites = getCallSites(); console.log('Call Sites:'); callSites.forEach((callSite, index) => { console.log(`CallSite ${index + 1}:`); console.log(`Function Name: ${callSite.functionName}`); console.log(`Script Name: ${callSite.scriptName}`); console.log(`Line Number: ${callSite.lineNumber}`); console.log(`Column Number: ${callSite.columnNumber}`); }); // CallSite 1: // Function Name: exampleFunction // Script Name: /home/example.js // Line Number: 5 // Column Number: 26 // CallSite 2: // Function Name: anotherFunction // Script Name: /home/example.js // Line Number: 22 // Column Number: 3 // ... } // A function to simulate another stack layer function anotherFunction() { exampleFunction(); } anotherFunction();
Es ist möglich, die ursprünglichen Speicherorte zu rekonstruieren, indem die Option sourceMap auf true gesetzt wird. Wenn die Source-Map nicht verfügbar ist, entspricht der ursprüngliche Speicherort dem aktuellen Speicherort. Wenn das Flag --enable-source-maps aktiviert ist, ist sourceMap standardmäßig true.
import { getCallSites } from 'node:util';
interface Foo {
foo: string;
}
const callSites = getCallSites({ sourceMap: true });
// With sourceMap:
// Function Name: ''
// Script Name: example.js
// Line Number: 7
// Column Number: 26
// Without sourceMap:
// Function Name: ''
// Script Name: example.js
// Line Number: 2
// Column Number: 26
const { getCallSites } = require('node:util');
const callSites = getCallSites({ sourceMap: true });
// With sourceMap:
// Function Name: ''
// Script Name: example.js
// Line Number: 7
// Column Number: 26
// Without sourceMap:
// Function Name: ''
// Script Name: example.js
// Line Number: 2
// Column Number: 26
util.getSystemErrorName(err)#
Gibt den Namen als Zeichenfolge für einen numerischen Fehlercode zurück, der von einer Node.js-API stammt. Die Zuordnung zwischen Fehlercodes und Fehlernamen ist plattformabhängig. Siehe Häufige Systemfehler für die Namen häufiger Fehler.
fs.access('file/that/does/not/exist', (err) => {
const name = util.getSystemErrorName(err.errno);
console.error(name); // ENOENT
});
util.getSystemErrorMap()#
- Rückgabe:
<Map>
Gibt eine Map aller Systemfehlercodes zurück, die von der Node.js-API verfügbar sind. Die Zuordnung zwischen Fehlercodes und Fehlernamen ist plattformabhängig. Siehe Häufige Systemfehler für die Namen häufiger Fehler.
fs.access('file/that/does/not/exist', (err) => {
const errorMap = util.getSystemErrorMap();
const name = errorMap.get(err.errno);
console.error(name); // ENOENT
});
util.getSystemErrorMessage(err)#
Gibt die Nachricht als Zeichenfolge für einen numerischen Fehlercode zurück, der von einer Node.js-API stammt. Die Zuordnung zwischen Fehlercodes und Fehlernachrichten ist plattformabhängig.
fs.access('file/that/does/not/exist', (err) => {
const message = util.getSystemErrorMessage(err.errno);
console.error(message); // No such file or directory
});
util.setTraceSigInt(enable)#
enable<boolean>
Aktiviert oder deaktiviert das Drucken eines Stack-Trace bei SIGINT. Die API ist nur im Haupt-Thread verfügbar.
util.inherits(constructor, superConstructor)#
Stabilität: 3 - Veraltet: Verwenden Sie stattdessen die ES2015-Klassensyntax und das extends-Schlüsselwort.
constructor<Function>superConstructor<Function>
Die Verwendung von util.inherits() wird nicht empfohlen. Bitte verwenden Sie die ES6-Schlüsselwörter class und extends, um eine Vererbung auf Sprachebene zu erhalten. Beachten Sie auch, dass die beiden Stile semantisch inkompatibel sind.
Vererben Sie die Prototypmethoden von einem Konstruktor an einen anderen. Der Prototyp von constructor wird auf ein neues Objekt gesetzt, das von superConstructor erstellt wurde.
Dies fügt hauptsächlich eine Eingabevalidierung zusätzlich zu Object.setPrototypeOf(constructor.prototype, superConstructor.prototype) hinzu. Als zusätzlichen Komfort ist superConstructor über die Eigenschaft constructor.super_ zugänglich.
const util = require('node:util');
const EventEmitter = require('node:events');
function MyStream() {
EventEmitter.call(this);
}
util.inherits(MyStream, EventEmitter);
MyStream.prototype.write = function(data) {
this.emit('data', data);
};
const stream = new MyStream();
console.log(stream instanceof EventEmitter); // true
console.log(MyStream.super_ === EventEmitter); // true
stream.on('data', (data) => {
console.log(`Received data: "${data}"`);
});
stream.write('It works!'); // Received data: "It works!"
ES6-Beispiel mit class und extends
import EventEmitter from 'node:events'; class MyStream extends EventEmitter { write(data) { this.emit('data', data); } } const stream = new MyStream(); stream.on('data', (data) => { console.log(`Received data: "${data}"`); }); stream.write('With ES6');const EventEmitter = require('node:events'); class MyStream extends EventEmitter { write(data) { this.emit('data', data); } } const stream = new MyStream(); stream.on('data', (data) => { console.log(`Received data: "${data}"`); }); stream.write('With ES6');
util.inspect(object[, options])#
util.inspect(object[, showHidden[, depth[, colors]]])
object<any>Jedes JavaScript-Primitiv oderObject.options<Object>showHidden<boolean>Wenntrue, werden die nicht aufzählbaren Symbole und Eigenschaften desobjectim formatierten Ergebnis enthalten sein. Auch Einträge von<WeakMap>und<WeakSet>sind enthalten, sowie benutzerdefinierte Prototyp-Eigenschaften (ausgenommen Methoden-Eigenschaften). Standard:false.depth<number>Gibt an, wie oft beim Formatieren vonobjectrekursiv vorgegangen werden soll. Dies ist nützlich für die Inspektion großer Objekte. Um bis zur maximalen Call-Stack-Größe zu rekursieren, übergeben SieInfinityodernull. Standard:2.colors<boolean>Wenntrue, wird die Ausgabe mit ANSI-Farbcodes formatiert. Farben sind anpassbar. Siehe Anpassen vonutil.inspect-Farben. Standard:false.customInspect<boolean>Wennfalse, werden[util.inspect.custom](depth, opts, inspect)-Funktionen nicht aufgerufen. Standard:true.showProxy<boolean>Wenntrue, beinhaltet dieProxy-Inspektion dietarget- undhandler-Objekte. Standard:false.maxArrayLength<integer>Gibt die maximale Anzahl vonArray-,<TypedArray>-,<Map>-,<WeakMap>- und<WeakSet>-Elementen an, die beim Formatieren enthalten sein sollen. Setzen Sie aufnulloderInfinity, um alle Elemente anzuzeigen. Setzen Sie auf0oder negativ, um keine Elemente anzuzeigen. Standard:100.maxStringLength<integer>Gibt die maximale Anzahl von Zeichen an, die beim Formatieren enthalten sein sollen. Setzen Sie aufnulloderInfinity, um alle Elemente anzuzeigen. Setzen Sie auf0oder negativ, um keine Zeichen anzuzeigen. Standard:10000.breakLength<integer>Die Länge, bei der Eingabewerte auf mehrere Zeilen aufgeteilt werden. Setzen Sie aufInfinity, um die Eingabe als einzelne Zeile zu formatieren (in Kombination mitcompactauftrueoder einer beliebigen Zahl >=1). Standard:80.compact<boolean>|<integer>Wenn dies auffalsegesetzt wird, wird jeder Objektschlüssel in einer neuen Zeile angezeigt. Es wird bei neuen Zeilen in Text umgebrochen, der länger alsbreakLengthist. Wenn es auf eine Zahl gesetzt ist, werden die innerennElemente in einer einzigen Zeile vereint, solange alle Eigenschaften inbreakLengthpassen. Kurze Array-Elemente werden ebenfalls gruppiert. Weitere Informationen finden Sie im Beispiel unten. Standard:3.sorted<boolean>|<Function>Wenn auftrueoder eine Funktion gesetzt, werden alle Eigenschaften eines Objekts sowieSet- undMap-Einträge im resultierenden String sortiert. Wenn auftruegesetzt, wird die Standardsortierung verwendet. Wenn auf eine Funktion gesetzt, wird sie als Vergleichsfunktion verwendet.getters<boolean>|<string>Wenn auftruegesetzt, werden Getter inspiziert. Wenn auf'get'gesetzt, werden nur Getter ohne entsprechenden Setter inspiziert. Wenn auf'set'gesetzt, werden nur Getter mit entsprechendem Setter inspiziert. Dies kann je nach Getter-Funktion zu Nebeneffekten führen. Standard:false.numericSeparator<boolean>Wenn auftruegesetzt, wird ein Unterstrich verwendet, um alle drei Ziffern in allen Bigints und Zahlen zu trennen. Standard:false.
- Rückgabe:
<string>Die Repräsentation desobject.
Die Methode util.inspect() gibt eine Zeichenfolgenrepräsentation von object zurück, die für das Debugging vorgesehen ist. Die Ausgabe von util.inspect kann sich jederzeit ändern und sollte nicht programmatisch davon abhängig gemacht werden. Zusätzliche options können übergeben werden, die das Ergebnis beeinflussen. util.inspect() verwendet den Namen des Konstruktors und/oder die Symbol.toStringTag-Eigenschaft, um ein identifizierbares Tag für einen inspizierten Wert zu erstellen.
class Foo {
get [Symbol.toStringTag]() {
return 'bar';
}
}
class Bar {}
const baz = Object.create(null, { [Symbol.toStringTag]: { value: 'foo' } });
util.inspect(new Foo()); // 'Foo [bar] {}'
util.inspect(new Bar()); // 'Bar {}'
util.inspect(baz); // '[foo] {}'
Zirkuläre Referenzen zeigen mit einem Referenzindex auf ihren Anker.
import { inspect } from 'node:util'; const obj = {}; obj.a = [obj]; obj.b = {}; obj.b.inner = obj.b; obj.b.obj = obj; console.log(inspect(obj)); // <ref *1> { // a: [ [Circular *1] ], // b: <ref *2> { inner: [Circular *2], obj: [Circular *1] } // }const { inspect } = require('node:util'); const obj = {}; obj.a = [obj]; obj.b = {}; obj.b.inner = obj.b; obj.b.obj = obj; console.log(inspect(obj)); // <ref *1> { // a: [ [Circular *1] ], // b: <ref *2> { inner: [Circular *2], obj: [Circular *1] } // }
Das folgende Beispiel inspiziert alle Eigenschaften des util-Objekts:
import util from 'node:util'; console.log(util.inspect(util, { showHidden: true, depth: null }));const util = require('node:util'); console.log(util.inspect(util, { showHidden: true, depth: null }));
Das folgende Beispiel hebt die Wirkung der compact-Option hervor:
import { inspect } from 'node:util'; const o = { a: [1, 2, [[ 'Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit, sed do ' + 'eiusmod \ntempor incididunt ut labore et dolore magna aliqua.', 'test', 'foo']], 4], b: new Map([['za', 1], ['zb', 'test']]), }; console.log(inspect(o, { compact: true, depth: 5, breakLength: 80 })); // { a: // [ 1, // 2, // [ [ 'Lorem ipsum dolor sit amet,\nconsectetur [...]', // A long line // 'test', // 'foo' ] ], // 4 ], // b: Map(2) { 'za' => 1, 'zb' => 'test' } } // Setting `compact` to false or an integer creates more reader friendly output. console.log(inspect(o, { compact: false, depth: 5, breakLength: 80 })); // { // a: [ // 1, // 2, // [ // [ // 'Lorem ipsum dolor sit amet,\n' + // 'consectetur adipiscing elit, sed do eiusmod \n' + // 'tempor incididunt ut labore et dolore magna aliqua.', // 'test', // 'foo' // ] // ], // 4 // ], // b: Map(2) { // 'za' => 1, // 'zb' => 'test' // } // } // Setting `breakLength` to e.g. 150 will print the "Lorem ipsum" text in a // single line.const { inspect } = require('node:util'); const o = { a: [1, 2, [[ 'Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit, sed do ' + 'eiusmod \ntempor incididunt ut labore et dolore magna aliqua.', 'test', 'foo']], 4], b: new Map([['za', 1], ['zb', 'test']]), }; console.log(inspect(o, { compact: true, depth: 5, breakLength: 80 })); // { a: // [ 1, // 2, // [ [ 'Lorem ipsum dolor sit amet,\nconsectetur [...]', // A long line // 'test', // 'foo' ] ], // 4 ], // b: Map(2) { 'za' => 1, 'zb' => 'test' } } // Setting `compact` to false or an integer creates more reader friendly output. console.log(inspect(o, { compact: false, depth: 5, breakLength: 80 })); // { // a: [ // 1, // 2, // [ // [ // 'Lorem ipsum dolor sit amet,\n' + // 'consectetur adipiscing elit, sed do eiusmod \n' + // 'tempor incididunt ut labore et dolore magna aliqua.', // 'test', // 'foo' // ] // ], // 4 // ], // b: Map(2) { // 'za' => 1, // 'zb' => 'test' // } // } // Setting `breakLength` to e.g. 150 will print the "Lorem ipsum" text in a // single line.
Die showHidden-Option ermöglicht es, Einträge von <WeakMap> und <WeakSet> zu inspizieren. Wenn es mehr Einträge als maxArrayLength gibt, gibt es keine Garantie, welche Einträge angezeigt werden. Das bedeutet, dass der zweimalige Abruf derselben <WeakSet>-Einträge zu unterschiedlichen Ausgaben führen kann. Außerdem können Einträge ohne verbleibende starke Referenzen jederzeit vom Garbage Collector gelöscht werden.
import { inspect } from 'node:util'; const obj = { a: 1 }; const obj2 = { b: 2 }; const weakSet = new WeakSet([obj, obj2]); console.log(inspect(weakSet, { showHidden: true })); // WeakSet { { a: 1 }, { b: 2 } }const { inspect } = require('node:util'); const obj = { a: 1 }; const obj2 = { b: 2 }; const weakSet = new WeakSet([obj, obj2]); console.log(inspect(weakSet, { showHidden: true })); // WeakSet { { a: 1 }, { b: 2 } }
Die sorted-Option stellt sicher, dass die Einfügereihenfolge der Eigenschaften eines Objekts das Ergebnis von util.inspect() nicht beeinflusst.
import { inspect } from 'node:util'; import assert from 'node:assert'; const o1 = { b: [2, 3, 1], a: '`a` comes before `b`', c: new Set([2, 3, 1]), }; console.log(inspect(o1, { sorted: true })); // { a: '`a` comes before `b`', b: [ 2, 3, 1 ], c: Set(3) { 1, 2, 3 } } console.log(inspect(o1, { sorted: (a, b) => b.localeCompare(a) })); // { c: Set(3) { 3, 2, 1 }, b: [ 2, 3, 1 ], a: '`a` comes before `b`' } const o2 = { c: new Set([2, 1, 3]), a: '`a` comes before `b`', b: [2, 3, 1], }; assert.strict.equal( inspect(o1, { sorted: true }), inspect(o2, { sorted: true }), );const { inspect } = require('node:util'); const assert = require('node:assert'); const o1 = { b: [2, 3, 1], a: '`a` comes before `b`', c: new Set([2, 3, 1]), }; console.log(inspect(o1, { sorted: true })); // { a: '`a` comes before `b`', b: [ 2, 3, 1 ], c: Set(3) { 1, 2, 3 } } console.log(inspect(o1, { sorted: (a, b) => b.localeCompare(a) })); // { c: Set(3) { 3, 2, 1 }, b: [ 2, 3, 1 ], a: '`a` comes before `b`' } const o2 = { c: new Set([2, 1, 3]), a: '`a` comes before `b`', b: [2, 3, 1], }; assert.strict.equal( inspect(o1, { sorted: true }), inspect(o2, { sorted: true }), );
Die numericSeparator-Option fügt allen Zahlen alle drei Ziffern einen Unterstrich hinzu.
import { inspect } from 'node:util'; const thousand = 1000; const million = 1000000; const bigNumber = 123456789n; const bigDecimal = 1234.12345; console.log(inspect(thousand, { numericSeparator: true })); // 1_000 console.log(inspect(million, { numericSeparator: true })); // 1_000_000 console.log(inspect(bigNumber, { numericSeparator: true })); // 123_456_789n console.log(inspect(bigDecimal, { numericSeparator: true })); // 1_234.123_45const { inspect } = require('node:util'); const thousand = 1000; const million = 1000000; const bigNumber = 123456789n; const bigDecimal = 1234.12345; console.log(inspect(thousand, { numericSeparator: true })); // 1_000 console.log(inspect(million, { numericSeparator: true })); // 1_000_000 console.log(inspect(bigNumber, { numericSeparator: true })); // 123_456_789n console.log(inspect(bigDecimal, { numericSeparator: true })); // 1_234.123_45
util.inspect() ist eine synchrone Methode, die für das Debugging vorgesehen ist. Ihre maximale Ausgabelänge beträgt etwa 128 MiB. Eingaben, die zu einer längeren Ausgabe führen, werden abgeschnitten.
Anpassen von util.inspect-Farben#
Die Farbausgabe (falls aktiviert) von util.inspect ist global über die Eigenschaften util.inspect.styles und util.inspect.colors anpassbar.
util.inspect.styles ist eine Map, die einen Stilnamen einer Farbe aus util.inspect.colors zuordnet.
Die Standardstile und die zugehörigen Farben sind:
bigint:yellowboolean:yellowdate:magentamodule:underlinename: (keine Formatierung)null:boldnumber:yellowregexp: Eine Methode, die Zeichenklassen, Gruppen, Assertionen und andere Teile für eine verbesserte Lesbarkeit färbt. Um die Färbung anzupassen, ändern Sie diecolors-Eigenschaft. Sie ist standardmäßig auf['red', 'green', 'yellow', 'cyan', 'magenta']gesetzt und kann nach Bedarf angepasst werden. Das Array wird je nach "Tiefe" wiederholt durchlaufen.special:cyan(z. B.Proxies)string:greensymbol:greenundefined:grey
Die Farbdarstellung verwendet ANSI-Steuercodes, die möglicherweise nicht auf allen Terminals unterstützt werden. Überprüfen Sie die Farbunterstützung mit tty.hasColors().
Vordefinierte Steuercodes sind unten aufgeführt (gruppiert als "Modifikatoren", "Vordergrundfarben" und "Hintergrundfarben").
Komplexe benutzerdefinierte Färbung#
Es ist möglich, eine Methode als Stil zu definieren. Sie empfängt den in einen String umgewandelten Wert der Eingabe. Sie wird aufgerufen, wenn die Färbung aktiv ist und der Typ inspiziert wird.
Beispiel: util.inspect.styles.regexp(value)
Modifikatoren#
Die Unterstützung für Modifikatoren variiert je nach Terminal. Sie werden größtenteils ignoriert, wenn sie nicht unterstützt werden.
reset- Setzt alle (Farb-)Modifikatoren auf ihre Standardwerte zurück- bold - Macht den Text fett
- italic - Macht den Text kursiv
- underline - Unterstreicht den Text
strikethrough- Zieht eine horizontale Linie durch die Mitte des Textes (Alias:strikeThrough,crossedout,crossedOut)hidden- Druckt den Text, macht ihn aber unsichtbar (Alias: conceal)- dim - Verringerte Farbintensität (Alias:
faint) - overlined - Macht den Text überstrichen
- blink - Blendet den Text in einem Intervall ein und aus
- inverse - Tauscht Vorder- und Hintergrundfarben (Alias:
swapcolors,swapColors) - doubleunderline - Macht den Text doppelt unterstrichen (Alias:
doubleUnderline) - framed - Zeichnet einen Rahmen um den Text
Vordergrundfarben#
blackredgreenyellowbluemagentacyanwhitegray(Alias:grey,blackBright)redBrightgreenBrightyellowBrightblueBrightmagentaBrightcyanBrightwhiteBright
Hintergrundfarben#
bgBlackbgRedbgGreenbgYellowbgBluebgMagentabgCyanbgWhitebgGray(Alias:bgGrey,bgBlackBright)bgRedBrightbgGreenBrightbgYellowBrightbgBlueBrightbgMagentaBrightbgCyanBrightbgWhiteBright
Benutzerdefinierte Inspektionsfunktionen für Objekte#
Objekte können auch ihre eigene [util.inspect.custom](depth, opts, inspect)-Funktion definieren, die util.inspect() aufruft und deren Ergebnis bei der Inspektion des Objekts verwendet.
import { inspect } from 'node:util'; class Box { constructor(value) { this.value = value; } [inspect.custom](depth, options, inspect) { if (depth < 0) { return options.stylize('[Box]', 'special'); } const newOptions = Object.assign({}, options, { depth: options.depth === null ? null : options.depth - 1, }); // Five space padding because that's the size of "Box< ". const padding = ' '.repeat(5); const inner = inspect(this.value, newOptions) .replace(/\n/g, `\n${padding}`); return `${options.stylize('Box', 'special')}< ${inner} >`; } } const box = new Box(true); console.log(inspect(box)); // "Box< true >"const { inspect } = require('node:util'); class Box { constructor(value) { this.value = value; } [inspect.custom](depth, options, inspect) { if (depth < 0) { return options.stylize('[Box]', 'special'); } const newOptions = Object.assign({}, options, { depth: options.depth === null ? null : options.depth - 1, }); // Five space padding because that's the size of "Box< ". const padding = ' '.repeat(5); const inner = inspect(this.value, newOptions) .replace(/\n/g, `\n${padding}`); return `${options.stylize('Box', 'special')}< ${inner} >`; } } const box = new Box(true); console.log(inspect(box)); // "Box< true >"
Benutzerdefinierte [util.inspect.custom](depth, opts, inspect)-Funktionen geben typischerweise eine Zeichenfolge zurück, können aber einen Wert eines beliebigen Typs zurückgeben, der dann von util.inspect() entsprechend formatiert wird.
import { inspect } from 'node:util'; const obj = { foo: 'this will not show up in the inspect() output' }; obj[inspect.custom] = (depth) => { return { bar: 'baz' }; }; console.log(inspect(obj)); // "{ bar: 'baz' }"const { inspect } = require('node:util'); const obj = { foo: 'this will not show up in the inspect() output' }; obj[inspect.custom] = (depth) => { return { bar: 'baz' }; }; console.log(inspect(obj)); // "{ bar: 'baz' }"
util.inspect.custom#
- Typ:
<symbol>, das zur Deklaration benutzerdefinierter Inspektionsfunktionen verwendet werden kann.
Neben der Zugänglichkeit über util.inspect.custom ist dieses Symbol global registriert und kann in jeder Umgebung als Symbol.for('nodejs.util.inspect.custom') aufgerufen werden.
Dies ermöglicht eine portable Code-Schreibweise, sodass die benutzerdefinierte Inspektionsfunktion in einer Node.js-Umgebung verwendet und im Browser ignoriert wird. Die util.inspect()-Funktion selbst wird als drittes Argument an die benutzerdefinierte Inspektionsfunktion übergeben, um weitere Portabilität zu ermöglichen.
const customInspectSymbol = Symbol.for('nodejs.util.inspect.custom');
class Password {
constructor(value) {
this.value = value;
}
toString() {
return 'xxxxxxxx';
}
[customInspectSymbol](depth, inspectOptions, inspect) {
return `Password <${this.toString()}>`;
}
}
const password = new Password('r0sebud');
console.log(password);
// Prints Password <xxxxxxxx>
Siehe Benutzerdefinierte Inspektionsfunktionen für Objekte für weitere Details.
util.inspect.defaultOptions#
Der Wert defaultOptions ermöglicht die Anpassung der Standardoptionen, die von util.inspect verwendet werden. Dies ist nützlich für Funktionen wie console.log oder util.format, die implizit util.inspect aufrufen. Er sollte auf ein Objekt gesetzt werden, das eine oder mehrere gültige util.inspect()-Optionen enthält. Das direkte Setzen von Eigenschaften der Option wird ebenfalls unterstützt.
import { inspect } from 'node:util'; const arr = Array(156).fill(0); console.log(arr); // Logs the truncated array inspect.defaultOptions.maxArrayLength = null; console.log(arr); // logs the full arrayconst { inspect } = require('node:util'); const arr = Array(156).fill(0); console.log(arr); // Logs the truncated array inspect.defaultOptions.maxArrayLength = null; console.log(arr); // logs the full array
util.isDeepStrictEqual(val1, val2[, options])#
val1<any>val2<any>skipPrototype<boolean>Wenntrue, werden der Prototyp- und Konstruktorvergleich während der tiefen strikten Gleichheitsprüfung übersprungen. Standard:false.- Rückgabewert:
<boolean>
Gibt true zurück, wenn eine tiefe strikte Gleichheit zwischen val1 und val2 besteht. Andernfalls wird false zurückgegeben.
Standardmäßig beinhaltet die tiefe strikte Gleichheit den Vergleich von Objektprototypen und Konstruktoren. Wenn skipPrototype true ist, können Objekte mit unterschiedlichen Prototypen oder Konstruktoren dennoch als gleich betrachtet werden, wenn ihre aufzählbaren Eigenschaften tief strikt gleich sind.
const util = require('node:util');
class Foo {
constructor(a) {
this.a = a;
}
}
class Bar {
constructor(a) {
this.a = a;
}
}
const foo = new Foo(1);
const bar = new Bar(1);
// Different constructors, same properties
console.log(util.isDeepStrictEqual(foo, bar));
// false
console.log(util.isDeepStrictEqual(foo, bar, true));
// true
Siehe assert.deepStrictEqual() für weitere Informationen über tiefe strikte Gleichheit.
Klasse: util.MIMEType#
Eine Implementierung der MIMEType-Klasse.
In Übereinstimmung mit Browser-Konventionen werden alle Eigenschaften von MIMEType-Objekten als Getter und Setter auf dem Klassenprototyp implementiert, anstatt als Dateneigenschaften auf dem Objekt selbst.
Eine MIME-Zeichenfolge ist eine strukturierte Zeichenfolge, die mehrere aussagekräftige Komponenten enthält. Beim Parsen wird ein MIMEType-Objekt zurückgegeben, das Eigenschaften für jede dieser Komponenten enthält.
new MIMEType(input)#
input<string>Die zu parsende MIME-Eingabe
Erstellt ein neues MIMEType-Objekt durch Parsen der input.
import { MIMEType } from 'node:util'; const myMIME = new MIMEType('text/plain');const { MIMEType } = require('node:util'); const myMIME = new MIMEType('text/plain');
Ein TypeError wird geworfen, wenn die input keine gültige MIME ist. Beachten Sie, dass versucht wird, die angegebenen Werte in Zeichenfolgen zu konvertieren. Zum Beispiel:
import { MIMEType } from 'node:util'; const myMIME = new MIMEType({ toString: () => 'text/plain' }); console.log(String(myMIME)); // Prints: text/plainconst { MIMEType } = require('node:util'); const myMIME = new MIMEType({ toString: () => 'text/plain' }); console.log(String(myMIME)); // Prints: text/plain
mime.type#
- Typ:
<string>
Ruft den Typ-Teil der MIME ab und setzt ihn.
import { MIMEType } from 'node:util'; const myMIME = new MIMEType('text/javascript'); console.log(myMIME.type); // Prints: text myMIME.type = 'application'; console.log(myMIME.type); // Prints: application console.log(String(myMIME)); // Prints: application/javascriptconst { MIMEType } = require('node:util'); const myMIME = new MIMEType('text/javascript'); console.log(myMIME.type); // Prints: text myMIME.type = 'application'; console.log(myMIME.type); // Prints: application console.log(String(myMIME)); // Prints: application/javascript
mime.subtype#
- Typ:
<string>
Ruft den Subtyp-Teil der MIME ab und setzt ihn.
import { MIMEType } from 'node:util'; const myMIME = new MIMEType('text/ecmascript'); console.log(myMIME.subtype); // Prints: ecmascript myMIME.subtype = 'javascript'; console.log(myMIME.subtype); // Prints: javascript console.log(String(myMIME)); // Prints: text/javascriptconst { MIMEType } = require('node:util'); const myMIME = new MIMEType('text/ecmascript'); console.log(myMIME.subtype); // Prints: ecmascript myMIME.subtype = 'javascript'; console.log(myMIME.subtype); // Prints: javascript console.log(String(myMIME)); // Prints: text/javascript
mime.essence#
- Typ:
<string>
Ruft die Essenz der MIME ab. Diese Eigenschaft ist schreibgeschützt. Verwenden Sie mime.type oder mime.subtype, um die MIME zu ändern.
import { MIMEType } from 'node:util'; const myMIME = new MIMEType('text/javascript;key=value'); console.log(myMIME.essence); // Prints: text/javascript myMIME.type = 'application'; console.log(myMIME.essence); // Prints: application/javascript console.log(String(myMIME)); // Prints: application/javascript;key=valueconst { MIMEType } = require('node:util'); const myMIME = new MIMEType('text/javascript;key=value'); console.log(myMIME.essence); // Prints: text/javascript myMIME.type = 'application'; console.log(myMIME.essence); // Prints: application/javascript console.log(String(myMIME)); // Prints: application/javascript;key=value
mime.params#
- Typ:
<MIMEParams>
Ruft das MIMEParams-Objekt ab, das die Parameter der MIME repräsentiert. Diese Eigenschaft ist schreibgeschützt. Siehe die MIMEParams-Dokumentation für Details.
mime.toString()#
- Rückgabe:
<string>
Die toString()-Methode auf dem MIMEType-Objekt gibt die serialisierte MIME zurück.
Aufgrund der Notwendigkeit der Standardkonformität erlaubt diese Methode Benutzern nicht, den Serialisierungsprozess der MIME anzupassen.
mime.toJSON()#
- Rückgabe:
<string>
Alias für mime.toString().
Diese Methode wird automatisch aufgerufen, wenn ein MIMEType-Objekt mit JSON.stringify() serialisiert wird.
import { MIMEType } from 'node:util'; const myMIMES = [ new MIMEType('image/png'), new MIMEType('image/gif'), ]; console.log(JSON.stringify(myMIMES)); // Prints: ["image/png", "image/gif"]const { MIMEType } = require('node:util'); const myMIMES = [ new MIMEType('image/png'), new MIMEType('image/gif'), ]; console.log(JSON.stringify(myMIMES)); // Prints: ["image/png", "image/gif"]
Klasse: util.MIMEParams#
Die MIMEParams-API bietet Lese- und Schreibzugriff auf die Parameter eines MIMEType.
new MIMEParams()#
Erstellt ein neues MIMEParams-Objekt mit leeren Parametern.
import { MIMEParams } from 'node:util'; const myParams = new MIMEParams();const { MIMEParams } = require('node:util'); const myParams = new MIMEParams();
mimeParams.delete(name)#
name<string>
Entfernt alle Name-Wert-Paare, deren Name name ist.
mimeParams.entries()#
- Gibt zurück:
<Iterator>
Gibt einen Iterator über jedes der Name-Wert-Paare in den Parametern zurück. Jedes Element des Iterators ist ein JavaScript-Array. Das erste Element des Arrays ist der name, das zweite Element des Arrays ist der value.
mimeParams.get(name)#
name<string>- Gibt zurück:
<string>|<null>Einen String odernull, wenn kein Schlüssel-Wert-Paar mit dem gegebenennameexistiert.
Gibt den Wert des ersten Schlüssel-Wert-Paares zurück, dessen Schlüssel name ist. Wenn keine solchen Paare vorhanden sind, wird null zurückgegeben.
mimeParams.has(name)#
Gibt true zurück, wenn mindestens ein Name-Wert-Paar existiert, dessen Name name ist.
mimeParams.keys()#
- Gibt zurück:
<Iterator>
Gibt einen Iterator über die Namen jedes Name-Wert-Paares zurück.
import { MIMEType } from 'node:util'; const { params } = new MIMEType('text/plain;foo=0;bar=1'); for (const name of params.keys()) { console.log(name); } // Prints: // foo // barconst { MIMEType } = require('node:util'); const { params } = new MIMEType('text/plain;foo=0;bar=1'); for (const name of params.keys()) { console.log(name); } // Prints: // foo // bar
mimeParams.set(name, value)#
Setzt den Wert im MIMEParams-Objekt, der mit name assoziiert ist, auf value. Wenn bereits Name-Wert-Paare vorhanden sind, deren Name name ist, wird der Wert des ersten solchen Paares auf value gesetzt.
import { MIMEType } from 'node:util'; const { params } = new MIMEType('text/plain;foo=0;bar=1'); params.set('foo', 'def'); params.set('baz', 'xyz'); console.log(params.toString()); // Prints: foo=def;bar=1;baz=xyzconst { MIMEType } = require('node:util'); const { params } = new MIMEType('text/plain;foo=0;bar=1'); params.set('foo', 'def'); params.set('baz', 'xyz'); console.log(params.toString()); // Prints: foo=def;bar=1;baz=xyz
mimeParams.values()#
- Gibt zurück:
<Iterator>
Gibt einen Iterator über die Werte jedes Name-Wert-Paares zurück.
mimeParams[Symbol.iterator]()#
- Gibt zurück:
<Iterator>
Alias für mimeParams.entries().
import { MIMEType } from 'node:util'; const { params } = new MIMEType('text/plain;foo=bar;xyz=baz'); for (const [name, value] of params) { console.log(name, value); } // Prints: // foo bar // xyz bazconst { MIMEType } = require('node:util'); const { params } = new MIMEType('text/plain;foo=bar;xyz=baz'); for (const [name, value] of params) { console.log(name, value); } // Prints: // foo bar // xyz baz
util.parseArgs([config])#
-
config<Object>Wird verwendet, um Argumente zum Parsen bereitzustellen und den Parser zu konfigurieren.configunterstützt die folgenden Eigenschaften:args<string[]>Array von Argument-Zeichenfolgen. Standard:process.argv, wobeiexecPathundfilenameentfernt wurden.options<Object>Wird verwendet, um dem Parser bekannte Argumente zu beschreiben. Schlüssel vonoptionssind die langen Namen der Optionen, und Werte sind ein<Object>, das die folgenden Eigenschaften akzeptiert:type<string>Typ des Arguments, das entwederbooleanoderstringsein muss.multiple<boolean>Ob diese Option mehrfach angegeben werden kann. Wenntrue, werden alle Werte in einem Array gesammelt. Wennfalse, gewinnt der letzte Wert für die Option. Standard:false.short<string>Ein einstelliger Alias für die Option.default<string>|<boolean>|<string[]>|<boolean[]>Der Wert, der der Option zugewiesen werden soll, wenn sie in den zu parsenden Argumenten nicht erscheint. Der Wert muss mit dem Typ übereinstimmen, der durch dietype-Eigenschaft angegeben ist. Wennmultipletrueist, muss es ein Array sein. Es wird kein Standardwert angewendet, wenn die Option in den zu parsenden Argumenten erscheint, selbst wenn der angegebene Wert falsy ist.
strict<boolean>Soll ein Fehler geworfen werden, wenn unbekannte Argumente gefunden werden oder wenn Argumente übergeben werden, die nicht mit dem inoptionskonfiguriertentypeübereinstimmen? Standard:true.allowPositionals<boolean>Ob dieser Befehl positionelle Argumente akzeptiert. Standard:false, wennstricttrueist, ansonstentrue.allowNegative<boolean>Wenntrue, erlaubt es, boolesche Optionen explizit auffalsezu setzen, indem der Optionsname mit--no-präfigiert wird. Standard:false.tokens<boolean>Gibt die geparsten Tokens zurück. Dies ist nützlich, um das integrierte Verhalten zu erweitern, von der Hinzufügung zusätzlicher Prüfungen bis hin zur Neuverarbeitung der Tokens auf unterschiedliche Weise. Standard:false.
-
Rückgabe:
<Object>Die geparsten Befehlszeilenargumentevalues<Object>Eine Zuordnung von geparsten Optionsnamen mit ihren<string>- oder<boolean>-Werten.positionals<string[]>Positionelle Argumente.tokens<Object[]>|<undefined>Siehe Abschnitt parseArgs tokens. Nur zurückgegeben, wennconfigtokens: trueenthält.
Bietet eine API auf höherer Ebene für das Parsen von Befehlszeilenargumenten als die direkte Interaktion mit process.argv. Nimmt eine Spezifikation für die erwarteten Argumente entgegen und gibt ein strukturiertes Objekt mit den geparsten Optionen und Positionals zurück.
import { parseArgs } from 'node:util'; const args = ['-f', '--bar', 'b']; const options = { foo: { type: 'boolean', short: 'f', }, bar: { type: 'string', }, }; const { values, positionals, } = parseArgs({ args, options }); console.log(values, positionals); // Prints: [Object: null prototype] { foo: true, bar: 'b' } []const { parseArgs } = require('node:util'); const args = ['-f', '--bar', 'b']; const options = { foo: { type: 'boolean', short: 'f', }, bar: { type: 'string', }, }; const { values, positionals, } = parseArgs({ args, options }); console.log(values, positionals); // Prints: [Object: null prototype] { foo: true, bar: 'b' } []
parseArgs tokens#
Detaillierte Parse-Informationen sind verfügbar, um benutzerdefinierte Verhalten durch Angabe von tokens: true in der Konfiguration hinzuzufügen. Die zurückgegebenen Tokens haben Eigenschaften, die Folgendes beschreiben:
- Alle Tokens
- Option-Tokens
name<string>Langer Name der Option.rawName<string>Wie die Option in args verwendet wurde, z. B.-foder--foo.value<string>|<undefined>Optionswert, der in args angegeben wurde. Undefiniert für boolesche Optionen.inlineValue<boolean>|<undefined>Ob der Optionswert inline angegeben wurde, wie z. B.--foo=bar.
- Positionelle Tokens
value<string>Der Wert des positionellen Arguments in args (d. h.args[index]).
- Option-Terminator-Token
Die zurückgegebenen Tokens sind in der Reihenfolge ihres Auftretens in den Eingabe-args. Optionen, die mehr als einmal in args erscheinen, erzeugen ein Token für jede Verwendung. Kurze Optionsgruppen wie -xy erweitern sich zu einem Token für jede Option. Also erzeugt -xxx drei Tokens.
Um beispielsweise Unterstützung für eine negierte Option wie --no-color hinzuzufügen (die allowNegative unterstützt, wenn die Option vom Typ boolean ist), können die zurückgegebenen Tokens neu verarbeitet werden, um den für die negierte Option gespeicherten Wert zu ändern.
import { parseArgs } from 'node:util'; const options = { 'color': { type: 'boolean' }, 'no-color': { type: 'boolean' }, 'logfile': { type: 'string' }, 'no-logfile': { type: 'boolean' }, }; const { values, tokens } = parseArgs({ options, tokens: true }); // Reprocess the option tokens and overwrite the returned values. tokens .filter((token) => token.kind === 'option') .forEach((token) => { if (token.name.startsWith('no-')) { // Store foo:false for --no-foo const positiveName = token.name.slice(3); values[positiveName] = false; delete values[token.name]; } else { // Resave value so last one wins if both --foo and --no-foo. values[token.name] = token.value ?? true; } }); const color = values.color; const logfile = values.logfile ?? 'default.log'; console.log({ logfile, color });const { parseArgs } = require('node:util'); const options = { 'color': { type: 'boolean' }, 'no-color': { type: 'boolean' }, 'logfile': { type: 'string' }, 'no-logfile': { type: 'boolean' }, }; const { values, tokens } = parseArgs({ options, tokens: true }); // Reprocess the option tokens and overwrite the returned values. tokens .filter((token) => token.kind === 'option') .forEach((token) => { if (token.name.startsWith('no-')) { // Store foo:false for --no-foo const positiveName = token.name.slice(3); values[positiveName] = false; delete values[token.name]; } else { // Resave value so last one wins if both --foo and --no-foo. values[token.name] = token.value ?? true; } }); const color = values.color; const logfile = values.logfile ?? 'default.log'; console.log({ logfile, color });
Beispielnutzung, die negierte Optionen zeigt und wann eine Option auf mehrere Arten verwendet wird, wobei die letzte gewinnt.
$ node negate.js
{ logfile: 'default.log', color: undefined }
$ node negate.js --no-logfile --no-color
{ logfile: false, color: false }
$ node negate.js --logfile=test.log --color
{ logfile: 'test.log', color: true }
$ node negate.js --no-logfile --logfile=test.log --color --no-color
{ logfile: 'test.log', color: false }
util.parseEnv(content)#
content<string>
Der Rohinhalt einer .env-Datei.
- Rückgabewert:
<Object>
Gegeben eine Beispiel-.env-Datei:
const { parseEnv } = require('node:util'); parseEnv('HELLO=world\nHELLO=oh my\n'); // Returns: { HELLO: 'oh my' }import { parseEnv } from 'node:util'; parseEnv('HELLO=world\nHELLO=oh my\n'); // Returns: { HELLO: 'oh my' }
util.promisify(original)#
original<Function>- Rückgabe:
<Function>
Nimmt eine Funktion, die dem üblichen Error-First-Callback-Stil folgt, d. h. sie akzeptiert ein (err, value) => ...-Callback als letztes Argument, und gibt eine Version zurück, die Promises zurückgibt.
import { promisify } from 'node:util'; import { stat } from 'node:fs'; const promisifiedStat = promisify(stat); promisifiedStat('.').then((stats) => { // Do something with `stats` }).catch((error) => { // Handle the error. });const { promisify } = require('node:util'); const { stat } = require('node:fs'); const promisifiedStat = promisify(stat); promisifiedStat('.').then((stats) => { // Do something with `stats` }).catch((error) => { // Handle the error. });
Oder äquivalent unter Verwendung von async functions:
import { promisify } from 'node:util'; import { stat } from 'node:fs'; const promisifiedStat = promisify(stat); async function callStat() { const stats = await promisifiedStat('.'); console.log(`This directory is owned by ${stats.uid}`); } callStat();const { promisify } = require('node:util'); const { stat } = require('node:fs'); const promisifiedStat = promisify(stat); async function callStat() { const stats = await promisifiedStat('.'); console.log(`This directory is owned by ${stats.uid}`); } callStat();
Wenn eine original[util.promisify.custom]-Eigenschaft vorhanden ist, gibt promisify deren Wert zurück, siehe Benutzerdefinierte promisifizierte Funktionen.
promisify() geht davon aus, dass original eine Funktion ist, die in allen Fällen einen Callback als letztes Argument akzeptiert. Wenn original keine Funktion ist, wirft promisify() einen Fehler. Wenn original eine Funktion ist, aber ihr letztes Argument kein Error-First-Callback ist, wird ihr dennoch ein Error-First-Callback als letztes Argument übergeben.
Die Verwendung von promisify() auf Klassenmethoden oder anderen Methoden, die this verwenden, funktioniert möglicherweise nicht wie erwartet, sofern sie nicht speziell behandelt wird.
import { promisify } from 'node:util'; class Foo { constructor() { this.a = 42; } bar(callback) { callback(null, this.a); } } const foo = new Foo(); const naiveBar = promisify(foo.bar); // TypeError: Cannot read properties of undefined (reading 'a') // naiveBar().then(a => console.log(a)); naiveBar.call(foo).then((a) => console.log(a)); // '42' const bindBar = naiveBar.bind(foo); bindBar().then((a) => console.log(a)); // '42'const { promisify } = require('node:util'); class Foo { constructor() { this.a = 42; } bar(callback) { callback(null, this.a); } } const foo = new Foo(); const naiveBar = promisify(foo.bar); // TypeError: Cannot read properties of undefined (reading 'a') // naiveBar().then(a => console.log(a)); naiveBar.call(foo).then((a) => console.log(a)); // '42' const bindBar = naiveBar.bind(foo); bindBar().then((a) => console.log(a)); // '42'
Benutzerdefinierte promisifizierte Funktionen#
Unter Verwendung des util.promisify.custom-Symbols kann man den Rückgabewert von util.promisify() überschreiben.
import { promisify } from 'node:util'; function doSomething(foo, callback) { // ... } doSomething[promisify.custom] = (foo) => { return getPromiseSomehow(); }; const promisified = promisify(doSomething); console.log(promisified === doSomething[promisify.custom]); // prints 'true'const { promisify } = require('node:util'); function doSomething(foo, callback) { // ... } doSomething[promisify.custom] = (foo) => { return getPromiseSomehow(); }; const promisified = promisify(doSomething); console.log(promisified === doSomething[promisify.custom]); // prints 'true'
Dies kann nützlich sein für Fälle, in denen die ursprüngliche Funktion nicht dem Standardformat folgt, ein Error-First-Callback als letztes Argument zu akzeptieren.
Zum Beispiel bei einer Funktion, die (foo, onSuccessCallback, onErrorCallback) akzeptiert:
doSomething[util.promisify.custom] = (foo) => {
return new Promise((resolve, reject) => {
doSomething(foo, resolve, reject);
});
};
Wenn promisify.custom definiert, aber keine Funktion ist, wirft promisify() einen Fehler.
util.promisify.custom#
- Typ:
<symbol>, das zur Deklaration benutzerdefinierter promisifizierter Varianten von Funktionen verwendet werden kann, siehe Benutzerdefinierte promisifizierte Funktionen.
Neben der Zugänglichkeit über util.promisify.custom ist dieses Symbol global registriert und kann in jeder Umgebung als Symbol.for('nodejs.util.promisify.custom') aufgerufen werden.
Zum Beispiel bei einer Funktion, die (foo, onSuccessCallback, onErrorCallback) akzeptiert:
const kCustomPromisifiedSymbol = Symbol.for('nodejs.util.promisify.custom');
doSomething[kCustomPromisifiedSymbol] = (foo) => {
return new Promise((resolve, reject) => {
doSomething(foo, resolve, reject);
});
};
util.stripVTControlCharacters(str)#
Gibt str mit entfernten ANSI-Escape-Codes zurück.
console.log(util.stripVTControlCharacters('\u001B[4mvalue\u001B[0m'));
// Prints "value"
util.styleText(format, text[, options])#
format<string>|<Array>Ein Textformat oder ein Array von Textformaten, die inutil.inspect.colorsdefiniert sind.text<string>Der zu formatierende Text.options<Object>
Diese Funktion gibt einen formatierten Text unter Berücksichtigung des übergebenen format für den Druck in einem Terminal zurück. Sie berücksichtigt die Fähigkeiten des Terminals und handelt gemäß der über die Umgebungsvariablen NO_COLOR, NODE_DISABLE_COLORS und FORCE_COLOR festgelegten Konfiguration.
import { styleText } from 'node:util'; import { stderr } from 'node:process'; const successMessage = styleText('green', 'Success!'); console.log(successMessage); const errorMessage = styleText( 'red', 'Error! Error!', // Validate if process.stderr has TTY { stream: stderr }, ); console.error(errorMessage);const { styleText } = require('node:util'); const { stderr } = require('node:process'); const successMessage = styleText('green', 'Success!'); console.log(successMessage); const errorMessage = styleText( 'red', 'Error! Error!', // Validate if process.stderr has TTY { stream: stderr }, ); console.error(errorMessage);
util.inspect.colors bietet auch Textformate wie italic und underline, und Sie können beide kombinieren.
console.log(
util.styleText(['underline', 'italic'], 'My italic underlined message'),
);
Beim Übergeben eines Arrays von Formaten ist die Reihenfolge der angewendeten Formate von links nach rechts, sodass das folgende Format das vorherige überschreiben könnte.
console.log(
util.styleText(['red', 'green'], 'text'), // green
);
Der spezielle Formatwert none wendet keine zusätzliche Formatierung auf den Text an.
Die vollständige Liste der Formate finden Sie unter Modifikatoren.
Klasse: util.TextDecoder#
Eine Implementierung der WHATWG Encoding Standard TextDecoder-API.
const decoder = new TextDecoder();
const u8arr = new Uint8Array([72, 101, 108, 108, 111]);
console.log(decoder.decode(u8arr)); // Hello
WHATWG-unterstützte Kodierungen#
Gemäß dem WHATWG Encoding Standard sind die von der TextDecoder-API unterstützten Kodierungen in den untenstehenden Tabellen aufgeführt. Für jede Kodierung können ein oder mehrere Aliase verwendet werden.
Verschiedene Node.js-Build-Konfigurationen unterstützen unterschiedliche Sätze von Kodierungen. (siehe Internationalisierung)
Standardmäßig unterstützte Kodierungen (mit vollständigen ICU-Daten)#
| Kodierung | Aliase |
|---|---|
'ibm866' |
'866', 'cp866', 'csibm866' |
'iso-8859-2' |
'csisolatin2', 'iso-ir-101', 'iso8859-2', 'iso88592', 'iso_8859-2', 'iso_8859-2:1987', 'l2', 'latin2' |
'iso-8859-3' |
'csisolatin3', 'iso-ir-109', 'iso8859-3', 'iso88593', 'iso_8859-3', 'iso_8859-3:1988', 'l3', 'latin3' |
'iso-8859-4' |
'csisolatin4', 'iso-ir-110', 'iso8859-4', 'iso88594', 'iso_8859-4', 'iso_8859-4:1988', 'l4', 'latin4' |
'iso-8859-5' |
'csisolatincyrillic', 'cyrillic', 'iso-ir-144', 'iso8859-5', 'iso88595', 'iso_8859-5', 'iso_8859-5:1988' |
'iso-8859-6' |
'arabic', 'asmo-708', 'csiso88596e', 'csiso88596i', 'csisolatinarabic', 'ecma-114', 'iso-8859-6-e', 'iso-8859-6-i', 'iso-ir-127', 'iso8859-6', 'iso88596', 'iso_8859-6', 'iso_8859-6:1987' |
'iso-8859-7' |
'csisolatingreek', 'ecma-118', 'elot_928', 'greek', 'greek8', 'iso-ir-126', 'iso8859-7', 'iso88597', 'iso_8859-7', 'iso_8859-7:1987', 'sun_eu_greek' |
'iso-8859-8' |
'csiso88598e', 'csisolatinhebrew', 'hebrew', 'iso-8859-8-e', 'iso-ir-138', 'iso8859-8', 'iso88598', 'iso_8859-8', 'iso_8859-8:1988', 'visual' |
'iso-8859-8-i' |
'csiso88598i', 'logical' |
'iso-8859-10' |
'csisolatin6', 'iso-ir-157', 'iso8859-10', 'iso885910', 'l6', 'latin6' |
'iso-8859-13' |
'iso8859-13', 'iso885913' |
'iso-8859-14' |
'iso8859-14', 'iso885914' |
'iso-8859-15' |
'csisolatin9', 'iso8859-15', 'iso885915', 'iso_8859-15', 'l9' |
'koi8-r' |
'cskoi8r', 'koi', 'koi8', 'koi8_r' |
'koi8-u' |
'koi8-ru' |
'macintosh' |
'csmacintosh', 'mac', 'x-mac-roman' |
'windows-874' |
'dos-874', 'iso-8859-11', 'iso8859-11', 'iso885911', 'tis-620' |
'windows-1250' |
'cp1250', 'x-cp1250' |
'windows-1251' |
'cp1251', 'x-cp1251' |
'windows-1252' |
'ansi_x3.4-1968', 'ascii', 'cp1252', 'cp819', 'csisolatin1', 'ibm819', 'iso-8859-1', 'iso-ir-100', 'iso8859-1', 'iso88591', 'iso_8859-1', 'iso_8859-1:1987', 'l1', 'latin1', 'us-ascii', 'x-cp1252' |
'windows-1253' |
'cp1253', 'x-cp1253' |
'windows-1254' |
'cp1254', 'csisolatin5', 'iso-8859-9', 'iso-ir-148', 'iso8859-9', 'iso88599', 'iso_8859-9', 'iso_8859-9:1989', 'l5', 'latin5', 'x-cp1254' |
'windows-1255' |
'cp1255', 'x-cp1255' |
'windows-1256' |
'cp1256', 'x-cp1256' |
'windows-1257' |
'cp1257', 'x-cp1257' |
'windows-1258' |
'cp1258', 'x-cp1258' |
'x-mac-cyrillic' |
'x-mac-ukrainian' |
'gbk' |
'chinese', 'csgb2312', 'csiso58gb231280', 'gb2312', 'gb_2312', 'gb_2312-80', 'iso-ir-58', 'x-gbk' |
'gb18030' |
|
'big5' |
'big5-hkscs', 'cn-big5', 'csbig5', 'x-x-big5' |
'euc-jp' |
'cseucpkdfmtjapanese', 'x-euc-jp' |
'iso-2022-jp' |
'csiso2022jp' |
'shift_jis' |
'csshiftjis', 'ms932', 'ms_kanji', 'shift-jis', 'sjis', 'windows-31j', 'x-sjis' |
'euc-kr' |
'cseuckr', 'csksc56011987', 'iso-ir-149', 'korean', 'ks_c_5601-1987', 'ks_c_5601-1989', 'ksc5601', 'ksc_5601', 'windows-949' |
Unterstützte Kodierungen, wenn Node.js mit der Option small-icu erstellt wurde#
| Kodierung | Aliase |
|---|---|
'utf-8' |
'unicode-1-1-utf-8', 'utf8' |
'utf-16le' |
'utf-16' |
'utf-16be' |
Unterstützte Kodierungen, wenn ICU deaktiviert ist#
| Kodierung | Aliase |
|---|---|
'utf-8' |
'unicode-1-1-utf-8', 'utf8' |
'utf-16le' |
'utf-16' |
Die im WHATWG Encoding Standard aufgeführte Kodierung 'iso-8859-16' wird nicht unterstützt.
new TextDecoder([encoding[, options]])#
encoding<string>Identifiziert dieencoding, die dieseTextDecoder-Instanz unterstützt. Standard:'utf-8'.options<Object>fatal<boolean>true, wenn Dekodierungsfehler fatal sind. Diese Option wird nicht unterstützt, wenn ICU deaktiviert ist (siehe Internationalisierung). Standard:false.ignoreBOM<boolean>Wenntrue, schließt derTextDecoderdas Byte Order Mark (BOM) in das dekodierte Ergebnis ein. Wennfalse, wird das Byte Order Mark aus der Ausgabe entfernt. Diese Option wird nur verwendet, wennencodingauf'utf-8','utf-16be'oder'utf-16le'gesetzt ist. Standard:false.
Erstellt eine neue TextDecoder-Instanz. Die encoding kann eine der unterstützten Kodierungen oder einen Alias angeben.
Die TextDecoder-Klasse ist auch auf dem globalen Objekt verfügbar.
textDecoder.decode([input[, options]])#
input<ArrayBuffer>|<DataView>|<TypedArray>EineArrayBuffer-,DataView- oderTypedArray-Instanz, die die kodierten Daten enthält.options<Object>stream<boolean>true, wenn weitere Datenblöcke erwartet werden. Standard:false.
- Rückgabe:
<string>
Dekodiert die input und gibt einen String zurück. Wenn options.stream auf true gesetzt ist, werden unvollständige Byte-Sequenzen, die am Ende der input auftreten, intern zwischengespeichert und nach dem nächsten Aufruf von textDecoder.decode() ausgegeben.
Wenn textDecoder.fatal auf true gesetzt ist, führen Dekodierungsfehler zu einem TypeError.
textDecoder.encoding#
- Typ:
<string>
Die von der TextDecoder-Instanz unterstützte Kodierung.
textDecoder.fatal#
- Typ:
<boolean>
Der Wert ist true, wenn Dekodierungsfehler zu einem TypeError führen.
textDecoder.ignoreBOM#
- Typ:
<boolean>
Der Wert ist true, wenn das Dekodierungsergebnis das Byte Order Mark enthält.
Klasse: util.TextEncoder#
Eine Implementierung der TextEncoder-API des WHATWG Encoding Standard. Alle TextEncoder-Instanzen unterstützen ausschließlich UTF-8-Kodierung.
const encoder = new TextEncoder();
const uint8array = encoder.encode('this is some data');
Die TextEncoder-Klasse ist auch auf dem globalen Objekt verfügbar.
textEncoder.encode([input])#
input<string>Der zu kodierende Text. Standard: ein leerer String.- Gibt zurück:
<Uint8Array>
Kodiert den input-String als UTF-8 und gibt ein Uint8Array mit den kodierten Bytes zurück.
textEncoder.encodeInto(src, dest)#
src<string>Der zu kodierende Text.dest<Uint8Array>Das Array, das das Kodierungsergebnis aufnehmen soll.- Rückgabewert:
<Object>
Kodiert den src-String als UTF-8 in das dest-Uint8Array und gibt ein Objekt mit den gelesenen Unicode-Code-Einheiten und den geschriebenen UTF-8-Bytes zurück.
const encoder = new TextEncoder();
const src = 'this is some data';
const dest = new Uint8Array(10);
const { read, written } = encoder.encodeInto(src, dest);
textEncoder.encoding#
- Typ:
<string>
Die von der TextEncoder-Instanz unterstützte Kodierung. Immer auf 'utf-8' gesetzt.
util.toUSVString(string)#
string<string>
Gibt den string zurück, nachdem alle Ersatz-Code-Punkte (oder gleichwertig alle nicht gepaarten Ersatz-Code-Einheiten) durch das Unicode-Ersatzzeichen U+FFFD ersetzt wurden.
util.transferableAbortController()#
Erstellt und gibt eine <AbortController>-Instanz zurück, deren <AbortSignal> als übertragbar markiert ist und mit structuredClone() oder postMessage() verwendet werden kann.
util.transferableAbortSignal(signal)#
signal<AbortSignal>- Rückgabewert:
<AbortSignal>
Markiert das angegebene <AbortSignal> als übertragbar, sodass es mit structuredClone() und postMessage() verwendet werden kann.
const signal = transferableAbortSignal(AbortSignal.timeout(100));
const channel = new MessageChannel();
channel.port2.postMessage(signal, [signal]);
util.aborted(signal, resource)#
signal<AbortSignal>resource<Object>Jedes Nicht-Null-Objekt, das mit dem abbrechbaren Vorgang verbunden ist und schwach referenziert wird. Wenn dieresourcebereinigt (garbage collected) wird, bevor dassignalabbricht, bleibt das Promise ausstehend, was es Node.js ermöglicht, die Überwachung zu beenden. Dies hilft, Speicherlecks bei lang laufenden oder nicht abbrechbaren Vorgängen zu vermeiden.- Rückgabewert:
<Promise>
Überwacht das Abbruchereignis des bereitgestellten signal und gibt ein Promise zurück, das aufgelöst wird, wenn das signal abgebrochen wird. Wenn eine resource bereitgestellt wird, referenziert sie das mit dem Vorgang verbundene Objekt schwach; wenn also die resource vor dem Abbruch des signal bereinigt wird, bleibt das zurückgegebene Promise ausstehend. Dies verhindert Speicherlecks bei lang laufenden oder nicht abbrechbaren Vorgängen.
const { aborted } = require('node:util'); // Obtain an object with an abortable signal, like a custom resource or operation. const dependent = obtainSomethingAbortable(); // Pass `dependent` as the resource, indicating the promise should only resolve // if `dependent` is still in memory when the signal is aborted. aborted(dependent.signal, dependent).then(() => { // This code runs when `dependent` is aborted. console.log('Dependent resource was aborted.'); }); // Simulate an event that triggers the abort. dependent.on('event', () => { dependent.abort(); // This will cause the `aborted` promise to resolve. });import { aborted } from 'node:util'; // Obtain an object with an abortable signal, like a custom resource or operation. const dependent = obtainSomethingAbortable(); // Pass `dependent` as the resource, indicating the promise should only resolve // if `dependent` is still in memory when the signal is aborted. aborted(dependent.signal, dependent).then(() => { // This code runs when `dependent` is aborted. console.log('Dependent resource was aborted.'); }); // Simulate an event that triggers the abort. dependent.on('event', () => { dependent.abort(); // This will cause the `aborted` promise to resolve. });
util.types#
util.types bietet Typüberprüfungen für verschiedene Arten von eingebauten Objekten. Im Gegensatz zu instanceof oder Object.prototype.toString.call(value) untersuchen diese Prüfungen keine Objekteigenschaften, die von JavaScript aus zugänglich sind (wie deren Prototyp), und haben normalerweise den Overhead eines Aufrufs nach C++.
Das Ergebnis gibt im Allgemeinen keine Garantien darüber, welche Arten von Eigenschaften oder Verhalten ein Wert in JavaScript offenlegt. Sie sind hauptsächlich für Addon-Entwickler nützlich, die Typüberprüfungen bevorzugt in JavaScript durchführen.
Die API ist über require('node:util').types oder require('node:util/types') zugänglich.
util.types.isAnyArrayBuffer(value)#
Gibt true zurück, wenn der Wert eine eingebaute <ArrayBuffer>- oder <SharedArrayBuffer>-Instanz ist.
Siehe auch util.types.isArrayBuffer() und util.types.isSharedArrayBuffer().
util.types.isAnyArrayBuffer(new ArrayBuffer()); // Returns true
util.types.isAnyArrayBuffer(new SharedArrayBuffer()); // Returns true
util.types.isArrayBufferView(value)#
Gibt true zurück, wenn der Wert eine Instanz einer <ArrayBuffer>-Ansicht ist, wie etwa TypedArray-Objekte oder <DataView>. Äquivalent zu ArrayBuffer.isView().
util.types.isArrayBufferView(new Int8Array()); // true
util.types.isArrayBufferView(Buffer.from('hello world')); // true
util.types.isArrayBufferView(new DataView(new ArrayBuffer(16))); // true
util.types.isArrayBufferView(new ArrayBuffer()); // false
util.types.isArgumentsObject(value)#
Gibt true zurück, wenn der Wert ein arguments-Objekt ist.
function foo() {
util.types.isArgumentsObject(arguments); // Returns true
}
util.types.isArrayBuffer(value)#
Gibt true zurück, wenn der Wert eine eingebaute <ArrayBuffer>-Instanz ist. Dies schließt <SharedArrayBuffer>-Instanzen nicht ein. Normalerweise ist es ratsam, auf beides zu testen; siehe util.types.isAnyArrayBuffer() dafür.
util.types.isArrayBuffer(new ArrayBuffer()); // Returns true
util.types.isArrayBuffer(new SharedArrayBuffer()); // Returns false
util.types.isAsyncFunction(value)#
Gibt true zurück, wenn der Wert eine async function ist. Dies meldet nur zurück, was die JavaScript-Engine sieht; insbesondere kann der Rückgabewert nicht mit dem ursprünglichen Quellcode übereinstimmen, wenn ein Transpilations-Tool verwendet wurde.
util.types.isAsyncFunction(function foo() {}); // Returns false
util.types.isAsyncFunction(async function foo() {}); // Returns true
util.types.isBigInt64Array(value)#
Gibt true zurück, wenn der Wert eine BigInt64Array-Instanz ist.
util.types.isBigInt64Array(new BigInt64Array()); // Returns true
util.types.isBigInt64Array(new BigUint64Array()); // Returns false
util.types.isBigIntObject(value)#
Gibt true zurück, wenn der Wert ein BigInt-Objekt ist, z. B. erstellt durch Object(BigInt(123)).
util.types.isBigIntObject(Object(BigInt(123))); // Returns true
util.types.isBigIntObject(BigInt(123)); // Returns false
util.types.isBigIntObject(123); // Returns false
util.types.isBigUint64Array(value)#
Gibt true zurück, wenn der Wert eine BigUint64Array-Instanz ist.
util.types.isBigUint64Array(new BigInt64Array()); // Returns false
util.types.isBigUint64Array(new BigUint64Array()); // Returns true
util.types.isBooleanObject(value)#
Gibt true zurück, wenn der Wert ein Boolean-Objekt ist, z. B. erstellt durch new Boolean().
util.types.isBooleanObject(false); // Returns false
util.types.isBooleanObject(true); // Returns false
util.types.isBooleanObject(new Boolean(false)); // Returns true
util.types.isBooleanObject(new Boolean(true)); // Returns true
util.types.isBooleanObject(Boolean(false)); // Returns false
util.types.isBooleanObject(Boolean(true)); // Returns false
util.types.isBoxedPrimitive(value)#
Gibt true zurück, wenn der Wert ein "boxed" primitives Objekt ist, z. B. erstellt durch new Boolean(), new String() oder Object(Symbol()).
Zum Beispiel
util.types.isBoxedPrimitive(false); // Returns false
util.types.isBoxedPrimitive(new Boolean(false)); // Returns true
util.types.isBoxedPrimitive(Symbol('foo')); // Returns false
util.types.isBoxedPrimitive(Object(Symbol('foo'))); // Returns true
util.types.isBoxedPrimitive(Object(BigInt(5))); // Returns true
util.types.isCryptoKey(value)#
Gibt true zurück, wenn value ein <CryptoKey> ist, andernfalls false.
util.types.isDataView(value)#
Gibt true zurück, wenn der Wert eine eingebaute <DataView>-Instanz ist.
const ab = new ArrayBuffer(20);
util.types.isDataView(new DataView(ab)); // Returns true
util.types.isDataView(new Float64Array()); // Returns false
Siehe auch ArrayBuffer.isView().
util.types.isDate(value)#
Gibt true zurück, wenn der Wert eine eingebaute <Date>-Instanz ist.
util.types.isDate(new Date()); // Returns true
util.types.isExternal(value)#
Gibt true zurück, wenn der Wert ein natives External-Wert ist.
Ein natives External-Objekt ist ein spezieller Objekttyp, der einen rohen C++-Zeiger (void*) für den Zugriff von nativem Code enthält und keine weiteren Eigenschaften besitzt. Solche Objekte werden entweder von Node.js-Internals oder nativen Addons erstellt. In JavaScript sind sie eingefrorene (frozen) Objekte mit einem null-Prototyp.
import native from 'napi_addon.node'; import { types } from 'node:util'; const data = native.myNapi(); types.isExternal(data); // returns true types.isExternal(0); // returns false types.isExternal(new String('foo')); // returns falseconst native = require('napi_addon.node'); const { types } = require('node:util'); const data = native.myNapi(); types.isExternal(data); // returns true types.isExternal(0); // returns false types.isExternal(new String('foo')); // returns false
Weitere Informationen zu napi_create_external finden Sie unter napi_create_external().
util.types.isFloat16Array(value)#
Gibt true zurück, wenn der Wert eine eingebaute <Float16Array>-Instanz ist.
util.types.isFloat16Array(new ArrayBuffer()); // Returns false
util.types.isFloat16Array(new Float16Array()); // Returns true
util.types.isFloat16Array(new Float32Array()); // Returns false
util.types.isFloat32Array(value)#
Gibt true zurück, wenn der Wert eine eingebaute <Float32Array>-Instanz ist.
util.types.isFloat32Array(new ArrayBuffer()); // Returns false
util.types.isFloat32Array(new Float32Array()); // Returns true
util.types.isFloat32Array(new Float64Array()); // Returns false
util.types.isFloat64Array(value)#
Gibt true zurück, wenn der Wert eine eingebaute <Float64Array>-Instanz ist.
util.types.isFloat64Array(new ArrayBuffer()); // Returns false
util.types.isFloat64Array(new Uint8Array()); // Returns false
util.types.isFloat64Array(new Float64Array()); // Returns true
util.types.isGeneratorFunction(value)#
Gibt true zurück, wenn der Wert eine Generator-Funktion ist. Dies meldet nur zurück, was die JavaScript-Engine sieht; insbesondere kann der Rückgabewert nicht mit dem ursprünglichen Quellcode übereinstimmen, wenn ein Transpilations-Tool verwendet wurde.
util.types.isGeneratorFunction(function foo() {}); // Returns false
util.types.isGeneratorFunction(function* foo() {}); // Returns true
util.types.isGeneratorObject(value)#
Gibt true zurück, wenn der Wert ein Generator-Objekt ist, wie von einer eingebauten Generator-Funktion zurückgegeben. Dies meldet nur zurück, was die JavaScript-Engine sieht; insbesondere kann der Rückgabewert nicht mit dem ursprünglichen Quellcode übereinstimmen, wenn ein Transpilations-Tool verwendet wurde.
function* foo() {}
const generator = foo();
util.types.isGeneratorObject(generator); // Returns true
util.types.isInt8Array(value)#
Gibt true zurück, wenn der Wert eine eingebaute <Int8Array>-Instanz ist.
util.types.isInt8Array(new ArrayBuffer()); // Returns false
util.types.isInt8Array(new Int8Array()); // Returns true
util.types.isInt8Array(new Float64Array()); // Returns false
util.types.isInt16Array(value)#
Gibt true zurück, wenn der Wert eine eingebaute <Int16Array>-Instanz ist.
util.types.isInt16Array(new ArrayBuffer()); // Returns false
util.types.isInt16Array(new Int16Array()); // Returns true
util.types.isInt16Array(new Float64Array()); // Returns false
util.types.isInt32Array(value)#
Gibt true zurück, wenn der Wert eine eingebaute <Int32Array>-Instanz ist.
util.types.isInt32Array(new ArrayBuffer()); // Returns false
util.types.isInt32Array(new Int32Array()); // Returns true
util.types.isInt32Array(new Float64Array()); // Returns false
util.types.isKeyObject(value)#
Gibt true zurück, wenn value ein <KeyObject> ist, andernfalls false.
util.types.isMap(value)#
Gibt true zurück, wenn der Wert eine eingebaute <Map>-Instanz ist.
util.types.isMap(new Map()); // Returns true
util.types.isMapIterator(value)#
Gibt true zurück, wenn der Wert ein Iterator ist, der für eine eingebaute <Map>-Instanz zurückgegeben wurde.
const map = new Map();
util.types.isMapIterator(map.keys()); // Returns true
util.types.isMapIterator(map.values()); // Returns true
util.types.isMapIterator(map.entries()); // Returns true
util.types.isMapIterator(map[Symbol.iterator]()); // Returns true
util.types.isModuleNamespaceObject(value)#
Gibt true zurück, wenn der Wert eine Instanz eines Module Namespace Object ist.
import * as ns from './a.js';
util.types.isModuleNamespaceObject(ns); // Returns true
util.types.isNativeError(value)#
Stabilität: 0 - Veraltet: Verwenden Sie stattdessen Error.isError.
Hinweis: Ab Node.js 24 ist Error.isError() derzeit langsamer als util.types.isNativeError(). Wenn die Performance kritisch ist, sollten Sie beides in Ihrer Umgebung benchen.
Gibt true zurück, wenn der Wert vom Konstruktor eines eingebauten Error-Typs zurückgegeben wurde.
console.log(util.types.isNativeError(new Error())); // true
console.log(util.types.isNativeError(new TypeError())); // true
console.log(util.types.isNativeError(new RangeError())); // true
Unterklassen der nativen Fehlertypen sind ebenfalls native Fehler.
class MyError extends Error {}
console.log(util.types.isNativeError(new MyError())); // true
Ein Wert, für den instanceof eine native Fehlerklasse ist, ist nicht gleichbedeutend damit, dass isNativeError() für diesen Wert true zurückgibt. isNativeError() gibt true für Fehler zurück, die aus einem anderen Realm stammen, während instanceof Error für diese Fehler false zurückgibt.
import { createContext, runInContext } from 'node:vm'; import { types } from 'node:util'; const context = createContext({}); const myError = runInContext('new Error()', context); console.log(types.isNativeError(myError)); // true console.log(myError instanceof Error); // falseconst { createContext, runInContext } = require('node:vm'); const { types } = require('node:util'); const context = createContext({}); const myError = runInContext('new Error()', context); console.log(types.isNativeError(myError)); // true console.log(myError instanceof Error); // false
Umgekehrt gibt isNativeError() für alle Objekte false zurück, die nicht vom Konstruktor eines nativen Fehlers zurückgegeben wurden. Das beinhaltet Werte, die instanceof native Fehler sind.
const myError = { __proto__: Error.prototype };
console.log(util.types.isNativeError(myError)); // false
console.log(myError instanceof Error); // true
util.types.isNumberObject(value)#
Gibt true zurück, wenn der Wert ein Number-Objekt ist, z. B. erstellt durch new Number().
util.types.isNumberObject(0); // Returns false
util.types.isNumberObject(new Number(0)); // Returns true
util.types.isPromise(value)#
Gibt true zurück, wenn der Wert eine eingebaute <Promise>-Instanz ist.
util.types.isPromise(Promise.resolve(42)); // Returns true
util.types.isProxy(value)#
Gibt true zurück, wenn der Wert eine <Proxy>-Instanz ist.
const target = {};
const proxy = new Proxy(target, {});
util.types.isProxy(target); // Returns false
util.types.isProxy(proxy); // Returns true
util.types.isRegExp(value)#
Gibt true zurück, wenn der Wert ein regulärer Ausdrucks-Objekt ist.
util.types.isRegExp(/abc/); // Returns true
util.types.isRegExp(new RegExp('abc')); // Returns true
util.types.isSet(value)#
Gibt true zurück, wenn der Wert eine eingebaute <Set>-Instanz ist.
util.types.isSet(new Set()); // Returns true
util.types.isSetIterator(value)#
Gibt true zurück, wenn der Wert ein Iterator ist, der für eine eingebaute <Set>-Instanz zurückgegeben wurde.
const set = new Set();
util.types.isSetIterator(set.keys()); // Returns true
util.types.isSetIterator(set.values()); // Returns true
util.types.isSetIterator(set.entries()); // Returns true
util.types.isSetIterator(set[Symbol.iterator]()); // Returns true
util.types.isSharedArrayBuffer(value)#
Gibt true zurück, wenn der Wert eine eingebaute <SharedArrayBuffer>-Instanz ist. Dies schließt <ArrayBuffer>-Instanzen nicht ein. Normalerweise ist es ratsam, auf beides zu testen; siehe util.types.isAnyArrayBuffer() dafür.
util.types.isSharedArrayBuffer(new ArrayBuffer()); // Returns false
util.types.isSharedArrayBuffer(new SharedArrayBuffer()); // Returns true
util.types.isStringObject(value)#
Gibt true zurück, wenn der Wert ein String-Objekt ist, z. B. erstellt durch new String().
util.types.isStringObject('foo'); // Returns false
util.types.isStringObject(new String('foo')); // Returns true
util.types.isSymbolObject(value)#
Gibt true zurück, wenn der Wert ein Symbol-Objekt ist, erstellt durch Aufruf von Object() auf einem Symbol-Primitiv.
const symbol = Symbol('foo');
util.types.isSymbolObject(symbol); // Returns false
util.types.isSymbolObject(Object(symbol)); // Returns true
util.types.isTypedArray(value)#
Gibt true zurück, wenn der Wert eine eingebaute <TypedArray>-Instanz ist.
util.types.isTypedArray(new ArrayBuffer()); // Returns false
util.types.isTypedArray(new Uint8Array()); // Returns true
util.types.isTypedArray(new Float64Array()); // Returns true
Siehe auch ArrayBuffer.isView().
util.types.isUint8Array(value)#
Gibt true zurück, wenn der Wert eine eingebaute <Uint8Array>-Instanz ist.
util.types.isUint8Array(new ArrayBuffer()); // Returns false
util.types.isUint8Array(new Uint8Array()); // Returns true
util.types.isUint8Array(new Float64Array()); // Returns false
util.types.isUint8ClampedArray(value)#
Gibt true zurück, wenn der Wert eine eingebaute <Uint8ClampedArray>-Instanz ist.
util.types.isUint8ClampedArray(new ArrayBuffer()); // Returns false
util.types.isUint8ClampedArray(new Uint8ClampedArray()); // Returns true
util.types.isUint8ClampedArray(new Float64Array()); // Returns false
util.types.isUint16Array(value)#
Gibt true zurück, wenn der Wert eine eingebaute <Uint16Array>-Instanz ist.
util.types.isUint16Array(new ArrayBuffer()); // Returns false
util.types.isUint16Array(new Uint16Array()); // Returns true
util.types.isUint16Array(new Float64Array()); // Returns false
util.types.isUint32Array(value)#
Gibt true zurück, wenn der Wert eine eingebaute <Uint32Array>-Instanz ist.
util.types.isUint32Array(new ArrayBuffer()); // Returns false
util.types.isUint32Array(new Uint32Array()); // Returns true
util.types.isUint32Array(new Float64Array()); // Returns false
util.types.isWeakMap(value)#
Gibt true zurück, wenn der Wert eine eingebaute <WeakMap>-Instanz ist.
util.types.isWeakMap(new WeakMap()); // Returns true
util.types.isWeakSet(value)#
Gibt true zurück, wenn der Wert eine eingebaute <WeakSet>-Instanz ist.
util.types.isWeakSet(new WeakSet()); // Returns true
Veraltete APIs#
Die folgenden APIs sind veraltet und sollten nicht mehr verwendet werden. Bestehende Anwendungen und Module sollten aktualisiert werden, um alternative Ansätze zu finden.
util._extend(target, source)#
Stabilität: 0 - Veraltet: Verwenden Sie stattdessen Object.assign().
Die util._extend()-Methode war nie für die Verwendung außerhalb interner Node.js-Module gedacht. Die Community hat sie trotzdem gefunden und verwendet.
Sie ist veraltet und sollte nicht in neuem Code verwendet werden. JavaScript bietet mit Object.assign() eine sehr ähnliche eingebaute Funktionalität.
Eine automatische Migration ist verfügbar (Quelle)
npx codemod@latest @nodejs/util-extend-to-object-assign
util.isArray(object)#
Stabilität: 0 - Veraltet: Verwenden Sie stattdessen Array.isArray().
Alias für Array.isArray().
Gibt true zurück, wenn das angegebene object ein Array ist. Andernfalls wird false zurückgegeben.
const util = require('node:util');
util.isArray([]);
// Returns: true
util.isArray(new Array());
// Returns: true
util.isArray({});
// Returns: false
Eine automatische Migration ist verfügbar (Quelle)
npx codemod@latest @nodejs/util-is