REPL в Node.js: интерактивная консоль для экспериментов
Содержание
О проверке кода. Примеры не запускались в этой сессии (по договорённости — фокус на контенте, а не прогонах). Говорим прямо, а не ставим бейдж «проверено».
REPL — самый быстрый способ что-то проверить в Node.js: не нужно создавать файл, писать и запускать. Ввёл выражение — увидел результат. Разберём этот недооценённый инструмент.
Что это и как запустить
REPL (Read-Eval-Print-Loop) — интерактивная консоль, которая по кругу читает строку кода, выполняет, печатает результат и ждёт следующую. Запуск — просто node без имени файла:
$ node
Welcome to Node.js v22.
> 2 + 3
5
> const name = 'Аня'
undefined
> `Привет, ${name}`
'Привет, Аня'
> [1, 2, 3].map(x => x * 2)
[ 2, 4, 6 ]
Приглашение > ждёт ввода. Каждое выражение сразу вычисляется и печатается. Объявление переменной возвращает undefined (само объявление не имеет значения), а выражение — свой результат. Выход — .exit или дважды Ctrl+C.
- 1 ReadЧитает введённую строку кода
- 2 EvalВыполняет её в контексте Node
- 3 PrintПечатает результат выражения
- 4 LoopЖдёт следующую строку — и по кругу
Переменная _ и история
> 10 * 5
50
> _ + 100 // _ хранит прошлый результат
150
> _ // теперь _ равно 150
150
Подчёркивание _ хранит результат последнего выражения — удобно для цепочки расчётов без переменных. Стрелки вверх/вниз листают историю введённых команд, Tab — автодополнение (имена, свойства объекта, методы). Наберите []. и Tab — увидите все методы массива.
Команды с точкой
REPL понимает служебные команды, начинающиеся с точки:
> .help # список всех команд
> .editor # многострочный режим (пишем функцию, Ctrl+D — выполнить)
> .load app.js # загрузить и выполнить файл в сессии
> .save session.js # сохранить введённые команды в файл
> .clear # сбросить контекст
> .exit # выход
.editor— многострочный режим для функций и блоков (обычный ввод выполняет построчно);.load файл— загрузить содержимое файла в сессию: продолжить эксперимент с готовым кодом;.save файл— сохранить всё введённое в файл: превратить удачный эксперимент в скрипт.
Многострочный код
> function greet(name) {
... return `Привет, ${name}`; // ... = REPL ждёт продолжения
... }
undefined
> greet('Аня')
'Привет, Аня'
Когда выражение не завершено (открытая скобка, function), REPL показывает ... и ждёт продолжения. Для больших блоков удобнее .editor. Модули подключают как обычно:
> const fs = require('node:fs')
> fs.readdirSync('.') // сразу видим содержимое папки
Когда REPL удобнее скрипта
- проверить поведение функции — как ведёт себя
parseInt('08')или[1,2,3].flat(); - изучить незнакомый API — набрать объект и
Tab, посмотреть методы, попробовать вызовы; - быстрый расчёт — разовое вычисление без создания файла;
- отладить кусок логики — вставить выражение и посмотреть результат.
Для одноразовых экспериментов REPL быстрее цикла «создать файл → написать → запустить → удалить». А вот для повторяемого кода лучше обычный скрипт — его можно сохранить, версионировать, запускать снова. REPL — для проб и изучения, файл — для работы. Похожий инструмент есть в браузере (консоль DevTools) — идея та же.
Смежные темы: уроки Node.js — основы среды; отладка Node.js — глубже проб; методы массива — что пробовать в REPL. Полный список — в уроках Node.js.