Ausgabe in der Befehlszeile mit Node.js
Grundlegende Ausgabe mit dem Konsolenmodul Node.js bietet ein Konsolenmodul, das viele sehr nützliche Möglichkeiten zur Interaktion mit der Befehlszeile bietet. Es ist im Wesentlichen dasselbe wie das Konsolenobjekt, das Sie im Browser finden.
Die einfachste und am häufigsten verwendete Methode ist console.log()
, die die übergebene Zeichenkette in der Konsole ausgibt. Wenn Sie ein Objekt übergeben, wird es als Zeichenkette gerendert.
Sie können mehrere Variablen an console.log
übergeben, zum Beispiel:
const x = 'x';
const y = 'y';
console.log(x, y);
Wir können auch hübsche Phrasen formatieren, indem wir Variablen und einen Formatbezeichner übergeben. Zum Beispiel:
console.log('Meine %s hat %d Ohren', 'Katze', 2);
- %s formatiert eine Variable als Zeichenkette
- %d formatiert eine Variable als Zahl
- %i formatiert eine Variable nur als ihren ganzzahligen Teil
- %o formatiert eine Variable als Objekt Beispiel:
console.log('%o', Number);
Konsole leeren
console.clear()
leert die Konsole (das Verhalten kann von der verwendeten Konsole abhängen).
Elemente zählen
console.count()
ist eine praktische Methode. Nehmen Sie diesen Code:
const x = 1;
const y = 2;
const z = 3;
console.count('Der Wert von x ist '+x+' und wurde überprüft...wie oft?');
console.count('Der Wert von x ist'+x+'und wurde überprüft...wie oft?');
console.count('Der Wert von y ist'+y+'und wurde überprüft...wie oft?');
Was passiert, ist, dass console.count()
die Anzahl der Ausgaben einer Zeichenkette zählt und die Anzahl daneben ausgibt:
Sie können einfach Äpfel und Orangen zählen:
const oranges = ['orange', 'orange'];
const apples = ['just one apple'];
oranges.forEach(fruit => console.count(fruit));
apples.forEach(fruit => console.count(fruit));
Zählung zurücksetzen
Die Methode console.countReset()
setzt den mit console.count()
verwendeten Zähler zurück.
Wir werden das Beispiel mit Äpfeln und Orangen verwenden, um dies zu demonstrieren.
const oranges = ['orange', 'orange'];
const apples = ['just one apple'];
oranges.forEach(fruit => console.count(fruit));
apples.forEach(fruit => console.count(fruit));
console.countReset('orange');
oranges.forEach(fruit => console.count(fruit));
Den Stack Trace ausgeben
Es kann Fälle geben, in denen es nützlich ist, den Call Stack Trace einer Funktion auszugeben, vielleicht um die Frage zu beantworten, wie Sie diesen Teil des Codes erreicht haben?
Sie können dies mit console.trace()
tun:
const function2 = () => console.trace();
const function1 = () => function2();
function1();
Dies gibt den Stack Trace aus. Folgendes wird ausgegeben, wenn wir dies in der Node.js REPL ausprobieren:
Trace
at function2 (repl:1:33)
at function1 (rep1:1:25)
at rep1:1:1
at ContextifyScript.Script.xunInThisContext (vm.js:44:33)
at REPLServer.defaultEval(repl.js:239:29)
at bound (domain.js:301:14)
at REPLServer.xunBound [as eval](domain.js:314:12)
at REPLServer.onLine (repl.js:440:10)
at emitone (events.js:120:20)
at REPLServer.emit (events.js:210:7)
Die verbrachte Zeit berechnen
Sie können leicht berechnen, wie viel Zeit eine Funktion zum Ausführen benötigt, indem Sie time()
und timeEnd()
verwenden.
const doSomething = () => console.log('test');
const measureDoingSomething = () => {
console.time('doSomething()');
// do something, and measure the time it takes
doSomething();
console.timeEnd('doSomething()');
};
measureDoingSomething();
stdout und stderr
Wie wir gesehen haben, eignet sich console.log
hervorragend zum Ausgeben von Meldungen in der Konsole. Dies wird als Standardausgabe oder stdout bezeichnet.
console.error
gibt in den stderr-Stream aus.
Es wird nicht in der Konsole angezeigt, erscheint aber im Fehlerprotokoll.
Die Ausgabe farbig gestalten
Sie können die Ausgabe Ihres Textes in der Konsole mithilfe von Escape-Sequenzen farbig gestalten. Eine Escape-Sequenz ist eine Reihe von Zeichen, die eine Farbe identifiziert.
Beispiel:
console.log('x1b[33ms/x1b[0m', 'hi!');
Sie können dies in der Node.js REPL ausprobieren, und es wird hi! in Gelb ausgegeben.
Dies ist jedoch die Low-Level-Methode, um dies zu tun. Der einfachste Weg, die Konsolenausgabe zu färben, ist die Verwendung einer Bibliothek. Chalk ist eine solche Bibliothek, und neben der Farbgebung hilft sie auch bei anderen Styling-Möglichkeiten, wie z. B. dem Fettdruck, Kursivdruck oder Unterstreichen von Text.
Sie installieren es mit npm install chalk
, dann können Sie es verwenden:
const chalk = require('chalk');
console.log(chalk.yellow('hi!'));
Die Verwendung von chalk.yellow
ist viel bequemer als der Versuch, sich die Escape-Codes zu merken, und der Code ist viel lesbarer.
Weitere Anwendungsbeispiele finden Sie im oben genannten Projektlink.
Eine Fortschrittsanzeige erstellen
progress
ist ein großartiges Paket, um eine Fortschrittsanzeige in der Konsole zu erstellen. Installieren Sie es mit npm install progress
.
Dieser Code-Schnipsel erstellt eine 10-stufige Fortschrittsanzeige, und alle 100ms wird ein Schritt abgeschlossen. Wenn die Anzeige abgeschlossen ist, löschen wir das Intervall:
const ProgressBar = require('progress');
const bar = new ProgressBar(':bar', { total: 10 });
const timer = setInterval(() => {
bar.tick();
if (bar.complete) {
clearInterval(timer);
}
}, 100);