Ausgabe auf der Befehlszeile mit Node.js
Grundlegende Ausgabe mit dem Konsolenmodul Node.js stellt ein Konsolenmodul bereit, das viele sehr nützliche Möglichkeiten zur Interaktion mit der Befehlszeile bietet. Es ist im Grunde dasselbe wie das Konsolenobjekt, das Sie im Browser finden.
Die grundlegendste und am häufigsten verwendete Methode ist console.log()
, die die an sie ü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 Formatspezifizierer ü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 Zählung daneben ausgibt:
Sie können einfach Äpfel und Orangen zählen:
const oranges = ['orange', 'orange'];
const apples = ['nur ein Apfel'];
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 = ['nur ein Apfel'];
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 man diesen Teil des Codes erreicht hat.
Dies können Sie mit console.trace()
tun:
const function2 = () => console.trace();
const function1 = () => function2();
function1();
Dadurch wird der Stack-Trace ausgegeben. Das wird ausgegeben, wenn wir dies im Node.js REPL versuchen:
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 aufgewendete Zeit berechnen
Sie können einfach berechnen, wie lange eine Funktion zur Ausführung benötigt, indem Sie time()
und timeEnd()
verwenden.
const doSomething = () => console.log('test');
const measureDoingSomething = () => {
console.time('doSomething()');
// etwas tun und die dafür benötigte Zeit messen
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, sondern im Fehlerprotokoll.
Die Ausgabe farbig gestalten
Sie können die Ausgabe Ihres Textes in der Konsole mit Escape-Sequenzen einfärben. Eine Escape-Sequenz ist eine Reihe von Zeichen, die eine Farbe identifiziert.
Beispiel:
console.log('x1b[33ms/x1b[0m', 'hi!');
Sie können dies im Node.js REPL ausprobieren, und es wird hi! in Gelb ausgegeben.
Dies ist jedoch der Low-Level-Ansatz. Der einfachste Weg, die Konsolenausgabe einzufärben, ist die Verwendung einer Bibliothek. Chalk ist eine solche Bibliothek, die nicht nur beim Einfärben, sondern auch bei anderen Styling-Möglichkeiten hilft, z. B. Text fett, kursiv oder unterstrichen zu gestalten.
Sie installieren sie mit npm install chalk
und können sie dann verwenden:
const chalk = require('chalk');
console.log(chalk.yellow('hi!'));
Die Verwendung von chalk.yellow
ist viel bequemer als zu versuchen, sich die Escape-Codes zu merken, und der Code ist viel lesbarer.
Weitere Anwendungsbeispiele finden Sie unter dem oben angegebenen Projektlink.
Eine Fortschrittsanzeige erstellen
progress
ist ein tolles Paket, um eine Fortschrittsanzeige in der Konsole zu erstellen. Installiere 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);