Модуль REPL Node.js
REPL — этоRead-Eval-Print Loopсокращение от (Read-Eval-Print Loop). Это простая интерактивная среда программирования. В среде REPL вы можете вводить код и сразу видеть результаты выполнения, что идеально подходит для быстрого тестирования фрагментов кода и изучения новых концепций.
В Node.js есть встроенная среда REPL, которую можно запустить следующим образом:
node
Основные возможности REPL
- Read: Читает JavaScript-код, введённый пользователем
- Eval: Выполняет введённый код
- Print: Выводит результат выполнения
- Loop: Повторяет этот процесс, пока пользователь не выйдет
Базовое использование REPL в Node.js
Запуск REPL
Введите следующее прямо в терминалеnodeкоманда для входа в среду REPL:
Пример
Добро пожаловать в Node.js v16.14.0.
Введите ".help" для получения дополнительной информации.
>
Базовые операции
Выполнение кода JavaScript:
Пример
2
Определение переменных:
Пример
undefined
> x * 2
20
Многострочный ввод: Когда вводится незавершённое выражение, REPL автоматически переходит в многострочный режим:
Пример
... return a + b
... }
undefined
> добавьте(2, 3)
5
Выход из REPL:
- Нажмите Ctrl+C дважды
- Type
.exit - Нажмите Ctrl+D
Специальные команды в REPL
Node.js REPL предоставляет некоторые специальные команды, начинающиеся с точки (.):
Основные команды
| Команда | Описание |
|---|---|
| .help | Отображает все команды REPL |
| .break | Выходит из режима многострочного ввода |
| .clear | Сбрасывает контекст REPL |
| .save | Сохраняет текущую сессию в файл |
| .load | Загружает сессию из файла |
| .editor | Вход в режим редактора |
Пример
Сохранение текущей сессии:
Пример
Загрузка сессии:
Пример
Вход в режим редактора:
Пример
// Войдите в режим редактора, можно вводить несколько строк кода
// Нажмите Ctrl+D, чтобы выполнить код
Расширенные возможности REPL
Пользовательская среда REPL
Вы можете создать пользовательскую среду REPL программно:
Пример
// Создать пользовательский REPL
const myRepl = repl.start({
prompt: 'MyNode> ',
useColors: true
});
// Добавить пользовательские команды
myRepl.defineCommand('sayhello', {
help: 'Поздороваться',
action(name) {
this.clearBufferedCommand();
console.log(`Привет, ${name || 'незнакомец'}!`);
this.displayPrompt();
}
});
Контекст REPL
Вы можете заранее добавить переменные или функции в контекст REPL:
Пример
const r = repl.start();
r.context.myVar = 'Привет из контекста';
r.context.myFunc = () => 'Привет из функции';
Вы можете напрямую использовать эти переменные и функции в REPL:
Пример
'Привет из контекста'
MyNode> myFunc()
'Привет из функции'
Сервер REPL
Вы даже можете создать сетевой сервер REPL:
Пример
const repl = require('repl');
net.createServer((socket) => {
repl.start({
prompt: 'Remote> ',
input: socket,
output: socket,
terminal: true
}).on('exit', () => {
socket.end();
});
}).listen(8080);
Практические варианты использования REPL
1. Быстрое тестирование фрагментов кода
REPL — самый быстрый способ протестировать фрагменты кода JavaScript без необходимости создавать файлы.
2. Изучение и экспериментирование
REPL отлично подходит для изучения новых возможностей JavaScript или API Node.js.
3. Отладка
В REPL можно быстро проверить значения переменных или протестировать поведение функции.
4. Прототипирование
На ранних этапах разработки вы можете использовать REPL, чтобы быстро проверять идеи.
Советы по использованию REPL
1. Использование переменной _
REPL сохраняет результат предыдущего выражения в_переменной:
Пример
4
> _ * 3
12
2. Автодополнение
Нажмите клавишу Tab для автодополнения имён переменных, свойств объектов и глобальных объектов.
3. История команд
Используйте клавиши со стрелками вверх и вниз для просмотра истории команд.
4. Режим редактора
Для сложного многострочного кода использование.editorкоманды удобнее.
Итог
Модуль REPL в Node.js — это мощная интерактивная среда программирования. Он:
- Позволяет быстро тестировать код JavaScript
- Поддерживает пользовательскую конфигурацию и расширения
- Включает множество полезных встроенных команд и функций
- Может использоваться для обучения, отладки и прототипирования
Независимо от того, новичок вы или опытный разработчик, REPL — очень ценный инструмент, и его стоит освоить.
Другие расширения
Встроенные модули Node.js