REPL и первый скрипт

Два способа выполнять код в Node: интерактивный REPL и запуск файла.

REPL — интерактивная консоль

Если просто набрать node без аргументов, откроется REPL (Read-Eval-Print Loop) — интерактивная консоль. Вы пишете выражение, нажимаете Enter, и Node тут же показывает результат. Это удобно, чтобы быстро что-то проверить.

node

REPL — это не игрушка для новичков, а рабочий инструмент: опытные разработчики постоянно держат его открытым, чтобы за секунду проверить, что вернёт незнакомый метод, как поведёт себя регулярное выражение или чему равно хитрое выражение с приоритетом операторов. Вместо того чтобы гадать или лезть в документацию, проще спросить сам движок.

После запуска появится приглашение >, и можно вводить JavaScript:

> 2 + 2
4
> const name = "Node"
undefined
> `Привет, ${name}!`
'Привет, Node!'
> [1, 2, 3].map(x => x * 10)
[ 10, 20, 30 ]

REPL расшифровывается так: Read (прочитать ввод), Eval (вычислить), Print (напечатать результат), Loop (повторить). Выйти из REPL можно командой .exit или дважды нажав Ctrl+C.

Первый скрипт: node app.js

REPL хорош для проб, но настоящие программы хранят в файлах. Создайте файл app.js с таким содержимым:

const name = "мир";
console.log(`Привет, ${name}!`);
console.log("Сегодня запускаю Node.");

Запустите его командой node, передав имя файла:

node app.js

Вывод:

Привет, мир!
Сегодня запускаю Node.

Node прочитал файл сверху вниз, выполнил каждую строку и напечатал то, что мы попросили через console.log. Это и есть запуск скрипта.

console.log — главный инструмент вывода

В браузере console.log пишет в консоль разработчика. В Node он пишет в терминал (поток stdout). Это основной способ что-то показать пользователю или себе при отладке.

console.log("обычное сообщение");
console.error("сообщение об ошибке");
console.log("Можно несколько значений:", 1, true, [1, 2]);

Вывод:

обычное сообщение
сообщение об ошибке
Можно несколько значений: 1 true [ 1, 2 ]

console.error пишет в поток ошибок (stderr), а не в обычный вывод — это полезно, чтобы отделять логи от ошибок при перенаправлении вывода в файлы. Например, команда node app.js > out.log сложит в файл только обычные сообщения, а ошибки останутся видны в терминале. Эта мелочь экономит много времени при отладке на сервере: журнал работы и журнал сбоев не смешиваются в одну кучу.

REPL или файл — когда что

REPLФайл (node app.js)
быстрые экспериментынастоящие программы
код не сохраняетсякод хранится и версионируется
«а что вернёт эта функция?»«запусти моё приложение»

Итог

  • Команда node без аргументов открывает интерактивный REPL.
  • REPL = Read-Eval-Print-Loop, удобно для быстрых проверок; выход — .exit.
  • Настоящие программы запускают так: node app.js.
  • console.log выводит в терминал, console.error — в поток ошибок.
Проверьте себя
1. Что произойдёт, если набрать node без аргументов?
AОшибка
BОткроется интерактивный REPL
CЗапустится последний файл
DУстановится новый пакет
2. Как расшифровывается REPL?
ARun-Edit-Print-Log
BRead-Eval-Print-Loop
CRestart-Eval-Process-Loop
DRead-Export-Parse-Load
3. Как запустить файл app.js в Node?
Arun app.js
Bnode app.js
Cexec app.js
Djs app.js
Поддержать проект