← Назад к вопросам

Что такое REPL в Node.js и для чего он используется?

1.0 Junior🔥 111 комментариев
#Node.js и JavaScript#Другое

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое REPL в Node.js и для чего он используется?

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

Как запустить REPL

// Просто выполни команду в терминале
node

// Или с дополнительными флагами
node --inspect           // Включить дебаггер
node --experimental-repl-await  // Поддержка async/await

Основные возможности

1. Интерактивное выполнение кода

> const x = 5;
undefined
> const y = 10;
undefined
> x + y
15
> console.log('Hello REPL!');
Hello REPL!
undefined

2. Работа с переменными

> let name = 'John';
undefined
> name = 'Jane';
'Jane'
> name
'Jane'

3. Использование встроенных модулей

> const fs = require('fs');
> fs.readdirSync('.')
[ 'package.json', 'index.js', 'node_modules' ]

4. Автодополнение (TAB)

> Math.
Math.E                 Math.PI
Math.SQRT1_2           Math.SQRT2
Math.abs               Math.acos
// ... и т.д.

> const obj = {name: 'test'};
> obj.
obj.name

5. История команд

// Используй стрелки вверх/вниз для навигации по истории
// Каждая сессия REPL хранит историю в ~/.node_repl_history

Практические применения

Быстрое тестирование функций

> const add = (a, b) => a + b;
undefined
> add(3, 7)
10

Проверка синтаксиса и API

> const date = new Date();
undefined
> date.toISOString()
'2026-03-29T10:30:45.123Z'

Изучение библиотек

> const _ = require('lodash');
> _.chunk([1, 2, 3, 4, 5], 2)
[ [ 1, 2 ], [ 3, 4 ], [ 5 ] ]

Работа с API асинхронно (в современных версиях)

> const result = await fetch('https://api.example.com/data');
> const data = await result.json();
> console.log(data);

Управляющие команды REPL

// Выход из REPL
> .exit
// Или Ctrl+D, Ctrl+C два раза

// Помощь
> .help

// Очистка контекста
> .clear

// Показать последний результат
> _

// Показать команды
> .commands

Программный REPL (для своих приложений)

Можно создать собственный REPL для взаимодействия с приложением:

const repl = require('repl');

// Базовый REPL
const replServer = repl.start('custom> ');

// Добавить контекст (доступные переменные)
replServer.context.myVar = 42;
replServer.context.myFunc = (x) => x * 2;

// События
replServer.on('exit', () => {
  console.log('REPL завершён');
  process.exit(0);
});

Пример интерактивной базы данных:

const repl = require('repl');
const sqlite3 = require('sqlite3');
const db = new sqlite3.Database(':memory:');

const replServer = repl.start('db> ');
replServer.context.query = (sql) => {
  return new Promise((resolve, reject) => {
    db.all(sql, (err, rows) => {
      if (err) reject(err);
      else resolve(rows);
    });
  });
};

Отличие от обычного скрипта

// script.js — выполняется весь сразу
const x = 5;
console.log(x); // 5

// REPL — выполняется построчно
> const x = 5;
> console.log(x); // 5

Полезные советы

  • Для быстрого прототипирования — не нужно создавать файл и запускать через node script.js
  • Для отладки — можно проверить значения переменных на лету
  • Для обучения — идеален для изучения API и синтаксиса
  • Для экспериментов — тестировать новые идеи без риска испортить основной код

REPL — это мощный инструмент, который делает разработку на Node.js более интерактивной и экспериментальной.

Что такое REPL в Node.js и для чего он используется? | PrepBro