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— в поток ошибок.