REPL stands for Read-Evaluate-Print-Loop. REPL provides a programming environment to quickly explore features provided by Nodejs:

Nodejs scripts

The node command is used to run Nodejs scripts:

node script.js

Starting a REPL session

The node command without any other argument provided starts a REPL session:


Trying this on your terminal:


Type some JavaScript and press enter:

> console.log('hello world!')
hello world!

The first line is the output from running console.log('hello world') and undefined is the return value for running console.log statement.

Running any expression from the REPL:

> ['cow', 'goat'].length === 2

Multi-line expressions

REPL is smart enough to know we are writing a multi-line expression:

> function greet() {

REPL inserts indentation/ space to add our function body. Finishing the greet function and calling the function from the REPL:

> function greet(name) {
... console.log(`Hello!, my name is ${name} and I am a full-stack developer!`)
... }
> greet("Roseland")
Hello!, my name is Roseland and I am a full-stack developer!

undefined is the return value for console.log statement inside the greet function.

The Up/Down arrow key

Pressing the Up/Down key displays the previous expressions/statements executed by the REPL

dot commands

The REPL has some special (.) commands, which can be started with a .:

  • .help: Shows all help info for all the dot commands
  • .editor: opens a multiline editor mode to write multiline JavaScript with ease. Once done editing, hit ctrl-D(CTRL key and D key simultaneously) to run the code
  • .break: same as ctrl-C, typing .break while in .editor mode prevents further input
  • .clear: resets the REPL history/contents and clears any multiline expression being input
  • .load: loads a JavaScript file, relative to the current working directory from which the REPL is executed from
  • .save: saves all REPL sessions to a file(specify the filename)
  • .exit: exits the REPL session, same as pressing ctrl-c twice

The node:repl module

A Nodejs REPL module exists for advanced use cases. Check out the REPL module here

Found this article helpful? You may follow me on Twitter where I tweet about interesting topics on software development.