How to Create a Rest Api with Node js and Express

Sandeep Reddy

April 17, 2024
How to Create a Rest Api with Node js and Express

What is REST API?

A REST API is an architectural style that leverages the HTTP protocol to facilitate data exchange between client and server applications. It is based on a set of constraints and principles, including a uniform interface, stateless communication, and the use of standard HTTP methods (GET, POST, PUT, DELETE) for performing operations on resources


What is Node.js?

Node.js, a server-side JavaScript runtime, and Express, a popular Node.js framework, make for a powerful combination to create RESTful APIs. In this blog post, we’ll explore the process of creating a REST API using Node.js and Express, step by step, with practical examples.


Before we dive into building our REST API, make sure you have the following tools and knowledge:

  1. Node.js and npm: Install Node.js, which includes npm (Node Package Manager), from the official website.
  2. Text Editor or IDE: Choose your preferred code editor. Some popular choices are Visual Studio Code, Sublime Text, or WebStorm.
  3. Basic JavaScript Knowledge: Understanding of JavaScript is crucial for Node.js development.

Step-by-step Guide to Make a REST API with Node.js

Step 1: Initialize Your Project

Let’s start by creating a new directory for your project and initializing it with npm.

mkdir my-rest-api
cd my-rest-api
npm init -y

This will create a package.json file with default settings for your project.

Step 2: Install Dependencies

We need a couple of packages to get our REST API up and running:

  • Express: The web application framework for Node.js.
  • Body-parser: A middleware for parsing incoming request bodies.
  • Nodemon (Optional): A tool that helps in automatically restarting the server during development.

Install these packages using npm:

const express = require('express');
const bodyParser = require('body-parser');
const app = express();


const port = process.env.PORT || 3000;
app.listen(port, () => {
  console.log(`Server is running on port ${port}`);

Step 3: Create an Express App

Now, let’s create an Express application and set up a basic server.

javascriptCopy codeconst express = require('express');const bodyParser = require('body-parser');const app = express();use(bodyParser.json());const port = process.env.PORT || 3000;listen(port, () => {console.log(`Server is running on port ${port}`);

Here, we’ve created a basic Express app, added the body-parser middleware to parse JSON data, and started a server on port 3000.

Step 4: Define Routes

In a REST API, routes define the endpoints for different HTTP methods (GET, POST, PUT, DELETE). Let’s create a simple example with a GET request.

app.get('/api/hello', (req, res) => {
  res.json({ message: 'Hello, World!' });

This code defines a route for /api/hello that responds with a JSON message when accessed via a GET request.

Step 5: Run Your API

You can run your API using Node.js, but during development, it’s handy to use Nodemon, which will automatically restart your server on code changes.

npm start

Now, if you access http://localhost:3000/api/hello, you should see the “Hello, World!” message.

Step 6: Add More Routes

To make a useful API, you’ll need to define more routes and implement CRUD (Create, Read, Update, Delete) operations for your resources. Here’s an example of a simple “To-Do List” API。

let todos = [];

app.get('/api/todos', (req, res) => {
});'/api/todos', (req, res) => {
  const newTodo = req.body;

// Implement PUT and DELETE as an exercise

In this example, we’ve added routes to list and create to-do items. You can extend this by implementing PUT and DELETE for updating and deleting tasks.

Step 7: Testing Your API

Testing your API is crucial to ensure it works as expected. Tools like Postman  can help you send requests and verify the responses.

Step 8: Deploy Your API

When you’re ready to share your API with the world, you can deploy it on platforms like Heroku, AWS, or Azure.


Creating a REST API with Node.js and Express is a powerful skill for any web developer.

In this blog post, we covered the essential steps from project setup to defining routes, and even touched on testing and deployment. Remember, practice is key, so don’t hesitate to build your own APIs, experiment with different functionalities, and explore more advanced features as you become more proficient with Node.js and Express.


Related Posts

Schedule a meeting to take your business to the next level.

    Get a Quote