Вывод в командную строку с помощью Node

Как печатать в консоли командной строки с помощью Node, от базового console.log до более сложных сценариев

Базовый вывод с использованием консольного модуля

Узел предоставляетconsoleмодулькоторый предоставляет множество очень полезных способов взаимодействия с командной строкой.

Это в основном то же самое, что иconsoleобъект, который вы найдете в браузере.

Самый простой и наиболее часто используемый метод - этоconsole.log(), который печатает строку, которую вы передаете ему в консоль.

Если вы передадите объект, он отобразит его как строку.

Вы можете передать несколько переменных вconsole.log, Например:

const x = 'x'
const y = 'y'
console.log(x, y)

и Node напечатает оба.

Мы также можем форматировать красивые фразы, передавая переменные и спецификатор формата.

Например:

console.log('My %s has %d years', 'cat', 2)
  • %sформатировать переменную как строку
  • %dили же%iформатировать переменную как целое число
  • %fформатировать переменную как число с плавающей запятой
  • %Oиспользуется для печати представления объекта

Пример:

console.log('%O', Number)

Очистить консоль

console.clear()очищает консоль (поведение может зависеть от используемой консоли)

Подсчет элементов

console.count()это удобный метод.

Возьмите этот код:

const x = 1
const y = 2
const z = 3
console.count(
  'The value of x is ' + x + ' and has been checked .. how many times?'
)
console.count(
  'The value of x is ' + x + ' and has been checked .. how many times?'
)
console.count(
  'The value of y is ' + y + ' and has been checked .. how many times?'
)

Что происходит, так это то, что count будет подсчитывать количество раз, когда строка печатается, и печатать счетчик рядом с ней:

Можно просто посчитать яблоки и апельсины:

const oranges = ['orange', 'orange']
const apples = ['just one apple']
oranges.forEach(fruit => {
  console.count(fruit)
})
apples.forEach(fruit => {
  console.count(fruit)
})

Могут быть случаи, когда полезно распечатать трассировку стека вызовов функции, возможно, чтобы ответить на вопроскак вы добрались до этой части кода?

Вы можете сделать это, используяconsole.trace():

const function2 = () => console.trace()
const function1 = () => function2()
function1()

Это напечатает трассировку стека. Вот что напечатано, если я попробую это в Node REPL:

Trace
    at function2 (repl:1:33)
    at function1 (repl:1:25)
    at repl:1:1
    at ContextifyScript.Script.runInThisContext (vm.js:44:33)
    at REPLServer.defaultEval (repl.js:239:29)
    at bound (domain.js:301:14)
    at REPLServer.runBound [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)

Рассчитайте потраченное время

Вы можете легко рассчитать, сколько времени требуется для выполнения функции, используяtime()иtimeEnd()

const doSomething = () => console.log('test')
const measureDoingSomething = () => {
  console.time('doSomething()')
  //do something, and measure the time it takes
  doSomething()
  console.timeEnd('doSomething()')
}
measureDoingSomething()

stdout и stderr

Как мы видели, console.log отлично подходит для печати сообщений в консоли. Это то, что называется стандартным выводом, илиstdout.

console.errorпечатает наstderrтранслировать.

Он не появится в консоли, но появится в журнале ошибок.

Раскрасьте вывод

Вы можете раскрасить вывод текста в консоли с помощью управляющих последовательностей. Управляющая последовательность - это набор символов, определяющих цвет.

Пример:

console.log('\x1b[33m%s\x1b[0m', 'hi!')

Вы можете попробовать это в Node REPL, и он напечатаетhi!желтым.

Однако это низкоуровневый способ сделать это. Самый простой способ раскрасить вывод консоли - использовать библиотеку.Мелявляется такой библиотекой, и помимо раскраски она также помогает с другими средствами стилизации, такими как выделение текста жирным шрифтом, курсивом или подчеркиванием.

Вы устанавливаете его с помощьюnpm install chalk, то вы можете использовать его:

const chalk = require('chalk')
console.log(chalk.yellow('hi!'))

С помощьюchalk.yellowнамного удобнее, чем пытаться запоминать escape-коды, и код намного читается.

Проверьте ссылку на проект, которую я разместил выше, чтобы увидеть больше примеров использования.

Создайте индикатор выполнения

Прогресс- отличный пакет для создания индикатора выполнения в консоли. Установите его, используяnpm install progress

Этот фрагмент кода создает индикатор выполнения из 10 шагов, и каждые 100 мс выполняется один шаг. Когда полоса завершится, мы очищаем интервал:

const ProgressBar = require('progress')

const bar = new ProgressBar(’:bar’, { total: 10 }) const timer = setInterval(() => { bar.tick() if (bar.complete) { clearInterval(timer) } }, 100)

Скачать мою бесплатнуюСправочник по Node.js


Дополнительные руководства по узлам: