Building a RESTful API with Express.js: A Step-by-Step Guide

RESTful APIs have become an integral part of modern web development, enabling seamless communication between different applications. Express.js, a popular web framework for Node.js, simplifies the process of creating robust and scalable APIs. In this step-by-step guide, we'll walk through the process of building a RESTful API using Express.js.


Before we begin, make sure you have Node.js and npm (Node Package Manager) installed on your machine. You can download them from

Step 1: Initialize Your Project

Create a new directory for your project and navigate into it using the terminal. Run the following commands to initialize a new Node.js project and create a package.json file:

npm init -y

Step 2: Install Dependencies

Install Express.js by running the following command in your terminal:

npm install express

Step 3: Create the Express App

Create a new file, let's call it app.js, and set up your Express application:

// app.js
const express = require('express');
const app = express();
const port = 3000;


// Define your routes here

app.listen(port, () => {
  console.log(`Server is running on port ${port}`);

This code initializes an Express app, sets up JSON parsing middleware, and listens on port 3000.

Step 4: Define Your Routes

Express allows you to define routes for handling various HTTP methods (GET, POST, PUT, DELETE). Let's create a simple example:

// app.js (continued)
const todos = [];

// Get all todos
app.get('/todos', (req, res) => {

// Get a specific todo by ID
app.get('/todos/:id', (req, res) => {
  const todoId =;
  const todo = todos.find((t) => === parseInt(todoId));

  if (!todo) {
    return res.status(404).json({ message: 'Todo not found' });


// Create a new todo'/todos', (req, res) => {
  const newTodo = req.body;

// Update a todo by ID
app.put('/todos/:id', (req, res) => {
  const todoId =;
  const updatedTodo = req.body;

  // Update the todo logic here


// Delete a todo by ID
app.delete('/todos/:id', (req, res) => {
  const todoId =;

  // Delete the todo logic here

  res.json({ message: 'Todo deleted successfully' });

Step 5: Run Your Express App

Now that your Express app is set up with routes, run the following command in your terminal:

node app.js

Visit http://localhost:3000/todos in your browser or a tool like Postman to test your API.

Congratulations! You've successfully built a basic RESTful API using Express.js. From here, you can expand and enhance your API by adding middleware, validation, database integration, and more. Express.js provides a flexible and powerful framework for building scalable and maintainable APIs.