А теперь поговорим о следующем встроенном модуле, «console». Как мы знаем уже, он использует «util.format» и «util.inspect» для вывода. Что еще интересного? «console», в отличии от «util», является глобальной переменной, это большая редкость в Node.JS, действительно «console» мы не должны «require()». Она у нас есть везде.
Теперь кратко взглянем на основные методы этого объекта, к счастью их всего два.
console.log(), console.error()
- «console.log()» или, что, то же самое, «console.info()».
- «console.error()» или, что, то же самое, «console.warn()».
Зачем есть два метода? Давайте я их сейчас запущу
1 2 3 4 5 |
// NO console.debug console.log("Log"); // =info (out) console.error("Error"); // =warn (err) |
Запустил. Есть разница? По виду нет. Но на самом деле разница существует и она заключается в том, что «log» выводит стандартный поток вывода, а «error» выводит поток ошибок. Это системные термины, смысл такой, что у каждой программы у каждого процесса, есть как минимум два потока вывода. Первый считается нормальным выводом, второй считается ошибками, можно их, например направить в разные файлы.
1 |
> node console.js 1>ok 2>err |
То, что выведено в первый поток, пойдет в файл «ok», сейчас там находится «Log», во второй в «err», сейчас там «Error». Посмотрим
Таким образом, если мы делаем перенаправление вывода и правильно используем «error» и «log», то мы всегда сможем отличить хорошее сообщение от ошибки.
Я использовал команду «type» для просмотра содержимого файлов. Это под Windows. Подробнее про «type» можно посмотреть здесь. В Mac OS используйте команду «cat».
console.trace()
Кроме этих методов, есть еще метод
1 |
console.trace(); // (err) |
Который используется достаточно редко, он выводит текущий StackTrace, тоже в поток ошибок, бывает иногда полезно, но редко.
console.debug()
Наконец
1 |
console.debug(); |
Обращаю ваше внимание на этот метод, точнее на его отсутствие. В браузерах он обычно есть, а в Node.JS его нету.