Модуль console в Node.js

Java FileВстроенные модули Node.js


consoleМодуль — один из наиболее часто используемых встроенных модулей в Node.js, предоставляющий простую консоль отладки, похожую на JavaScriptconsoleобъект в браузере.


Основы использования модуля console

1. Вывод общей информации

console.log()Это наиболее часто используемый метод, применяемый для вывода общей информации:

Пример

console.log('Hello, Node.js!');
// Вывод: Hello, Node.js!

2. Вывод сообщений об ошибках

console.error()Он используется для вывода сообщений об ошибках, по умолчанию вывод осуществляется в stderr:

Пример

console.error('This is an error message');
// Вывод (красный): This is an error message

3. Вывод предупреждающих сообщений

console.warn()Он используется для вывода предупреждающих сообщений:

Пример

console.warn('This is a warning message');
// Вывод (жёлтый): Это предупреждающее сообщение

4. Вывод информационных сообщений

console.info()иconsole.log()Подобно console.log, он используется для вывода информационных сообщений:

Пример

console.info('Это информационное сообщение');
// Вывод: Это информационное сообщение

Расширенные возможности модуля console

1. Форматированный вывод

Модуль console поддерживает форматированный вывод, подобный стилю printf() в языке C:

Пример

const name = 'Alice';
const age = 25;
console.log('Имя: %s, Возраст: %d', name, age);
// Вывод: Имя: Alice, Возраст: 25

Поддерживаемые заполнители формата:

  • %s- Строка
  • %d- Число (целое или с плавающей точкой)
  • %i- Целое число
  • %f- Число с плавающей точкой
  • %o- Объект
  • %j - JSON

2. Функциональность измерения времени

console.time()иconsole.timeEnd()Его можно использовать для измерения времени выполнения кода:

Пример

console.time('array test');
const arr = [];
for (let i = 0; i < 1000000; i++) {
  arr.push(i);
}
console.timeEnd('array test');
// Вывод: array test: 12.345ms

3. Сгруппированный вывод

console.group()иconsole.groupEnd()Он может создавать сворачиваемые группы сообщений:

Пример

console.group('User Details');
console.log('Name: Alice');
console.log('Age: 25');
console.groupEnd();

4. Табличный вывод

console.table()Он может выводить массивы или объекты в виде таблицы:

Пример

const users = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 30 }
];
console.table(users);

5. Проверка утверждений

console.assert()Это используется для простого тестирования утверждений:

Пример

const x = 5;
console.assert(x === 10, 'x должно быть 10');
// Вывод, когда утверждение ложно: Assertion failed: x должно быть 10

Параметры конфигурации для модуля console

1. Пользовательские потоки вывода

Вы можете создать собственный экземпляр Console и указать различные потоки вывода:

Пример

const { Console } = require('console');
const fs = require('fs');

const output = fs.createWriteStream('./stdout.log');
const errorOutput = fs.createWriteStream('./stderr.log');

const logger = new Console(output, errorOutput);

logger.log('Это будет записано в stdout.log');
logger.error('Это будет записано в stderr.log');

2. Цвета и стили

В терминалах, поддерживающих цвета ANSI, вывод консоли можно раскрасить:

Пример

console.log('\x1b[36m%s\x1b[0m', 'Cyan colored text');

Или используйте сторонние библиотеки, напримерchalkдля упрощения управления цветом:

Пример

const chalk = require('chalk');
console.log(chalk.blue('Blue text'));

Лучшие

  1. Логи производственной среды: В производственных средах рекомендуется использовать специализированную библиотеку логирования, напримерwinstonилиbunyanвместо console.
  2. Избегайте чрезмерного использования: Используйте console только во время разработки и отладки; ненужные операторы console следует удалять из производственного кода.
  3. Вопросы производительности: console.log является синхронным, поэтому используйте его с осторожностью в сценариях, чувствительных к производительности.
  4. Обработка ошибок: Используйте console.error для записи сообщений об ошибках, чтобы их было легче различать и фильтровать.

Список методов и свойств

Ниже перечисленыconsoleосновные методы и свойства модуля Node.js:

Метод/Свойство Описание Выходной поток Введено в версии
console.log([data][, ...args]) Вывод в stdout с новой строкой stdout 0.1.100
console.error([data][, ...args]) Вывод в stderr с новой строкой stderr 0.1.100
console.warn([data][, ...args]) Псевдоним для console.error stderr 0.1.100
console.info([data][, ...args]) Псевдоним для console.log stdout 0.1.100
console.debug([data][, ...args]) Вывести отладочную информацию в stdout stdout 8.0.0
console.dir(obj[, options]) Применить util.inspect() к объекту и вывести результат stdout 0.1.100
console.time([label]) Запустить таймер - 0.1.100
console.timeEnd([label]) Остановить таймер и вывести результат stdout 0.1.100
console.timeLog([label][, ...data]) Вывести текущее значение таймера stdout 10.7.0
console.trace([message][, ...args]) Вывести трассировку стека в stderr stderr 0.1.100
console.assert(value[, message][, ...args]) Если value ложно, проверка не проходит и выводится message stderr 0.1.100
console.clear() Попытка очистить консоль - 8.3.0
console.count([label]) Подсчитывает количество вызовов label stdout 8.3.0
console.countReset([label]) Сбрасывает счётчик stdout 8.3.0
console.group([...label]) Добавляет отступ для последующего вывода stdout 8.5.0
console.groupEnd() Завершает текущую группу с отступом stdout 8.5.0
console.table(tabularData[, properties]) Вывод данных в табличной форме stdout 10.0.0
console.dirxml(...data) Если поддерживается, вызовите console.log для вывода XML/HTML-дерева stdout -

Специальные свойства

Свойство Описание
console.stdout Поток для записи в стандартный вывод
console.stderr Поток для записи в стандартный поток ошибок

Модуль console в Node.js — это простой, но мощный инструмент отладки, предоставляющий множество методов: от базового логирования до продвинутых возможностей, таких как измерение времени и вывод таблиц. Освоение использования модуля console может значительно повысить эффективность разработки и улучшить опыт отладки.

Java FileВстроенные модули Node.js