Как использовать REPL в Node.js
Команда node используется для запуска наших Node.js скриптов:
node script.jsЕсли мы запустим команду node без скрипта или аргументов, мы запустим REPL сессию:
nodeПРИМЕЧАНИЕ
REPL расшифровывается как Read Evaluate Print Loop (цикл чтения, оценки, печати) и представляет собой среду программирования (в основном консольное окно), которая принимает отдельные выражения в качестве ввода пользователя и возвращает результат обратно в консоль после выполнения. REPL сессия предоставляет удобный способ быстрого тестирования простого JavaScript кода.
Если вы попробуете сейчас в своем терминале, произойдет следующее:
> node
>Команда переходит в режим ожидания и ждет, пока мы что-нибудь введем.
TIP
если вы не знаете, как открыть терминал, поищите в Google "Как открыть терминал на вашей операционной системе".
REPL ждет, когда мы введем какой-нибудь JavaScript код, если быть точнее.
Начните с простого и введите:
> console.log('test')
test
undefined
>Первое значение, test, - это вывод, который мы указали консоли напечатать, затем мы получаем undefined, которое является возвращаемым значением запуска console.log(). Node прочитал эту строку кода, оценил ее, напечатал результат, а затем вернулся к ожиданию новых строк кода. Node будет циклически проходить через эти три шага для каждого фрагмента кода, который мы выполняем в REPL, пока мы не выйдем из сессии. Именно отсюда REPL и получил свое название.
Node автоматически печатает результат любой строки JavaScript кода без необходимости указывать ему это делать. Например, введите следующую строку и нажмите Enter:
> 5==5
true
>Обратите внимание на разницу в выводах двух вышеприведенных строк. Node REPL напечатал undefined после выполнения console.log(), в то время как, с другой стороны, он просто напечатал результат 5== '5'. Вам нужно помнить, что первое - это просто оператор в JavaScript, а второе - выражение.
В некоторых случаях код, который вы хотите протестировать, может потребовать несколько строк. Например, предположим, вы хотите определить функцию, которая генерирует случайное число, в REPL сессии введите следующую строку и нажмите Enter:
function generateRandom()
...Node REPL достаточно умен, чтобы определить, что вы еще не закончили писать свой код, и он перейдет в многострочный режим, чтобы вы могли ввести больше кода. Теперь завершите определение своей функции и нажмите Enter:
function generateRandom()
...return Math.random()Специальная переменная:
Если после какого-либо кода вы введете _, это выведет результат последней операции.
Стрелка вверх:
Если вы нажмете клавишу со стрелкой вверх, вы получите доступ к истории предыдущих строк кода, выполненных в текущем и даже предыдущих сеансах REPL.
Dot команды
REPL имеет несколько специальных команд, все они начинаются с точки .. Они:
.help: показывает справку по dot командам..editor: включает режим редактора, чтобы с легкостью писать многострочный код JavaScript. Как только вы окажетесь в этом режиме, введитеctrl-D, чтобы запустить написанный вами код..break: при вводе многострочного выражения ввод команды.breakпрервет дальнейший ввод. То же самое, что и нажатиеctrl-C..clear: сбрасывает контекст REPL в пустой объект и очищает любое многострочное выражение, вводимое в данный момент..1oad: загружает файл JavaScript относительно текущего рабочего каталога..save: сохраняет все, что вы ввели в сеансе REPL, в файл (укажите имя файла)..exit: выходит из REPL (то же самое, что и двойное нажатиеctrl-C).
REPL знает, когда вы набираете многострочное выражение без необходимости вызывать .editor. Например, если вы начнете вводить итерацию следующим образом:
[1, 2,3].foxEach(num=>{и вы нажмете enter, REPL перейдет на новую строку, которая начинается с 3 точек, указывая, что теперь вы можете продолжить работу над этим блоком.
1... console.log (num)
2...}Если вы введете .break в конце строки, многострочный режим остановится и оператор не будет выполнен.
Запуск REPL из файла JavaScript
Мы можем импортировать REPL в файл JavaScript, используя repl.
const repl = require('node:repl');Используя переменную repl, мы можем выполнять различные операции. Чтобы запустить командную строку REPL, введите следующую строку:
repl.start();Запустите файл в командной строке.
node repl.jsВы можете передать строку, которая будет отображаться при запуске REPL. По умолчанию это '>` (с последующим пробелом), но мы можем определить собственное приглашение.
// приглашение в стиле Unix
const local = repl.start('$ ');Вы можете отобразить сообщение при выходе из REPL
local.on('exit', () => {
console.log('выход из repl');
process.exit();
});Вы можете узнать больше о модуле REPL в документации REPL.