Introduction

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:

node

Trying this on your terminal:

node
>

Type some JavaScript and press enter:

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

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:

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

Multi-line expressions

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

node
> function greet() {
  ...

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

node
> 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

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.