Creating a CRUD REST API/Service with Nodejs , Express and Mongodb


Creating a CRUD REST API/Service with Nodejs , Express and Mongodb

By bangarsanju12

This guide will help you create a CRUD REST API/Service with Nodejs , Express and Mongodb . We will create a mongo Student model and expose it using Student Resource.

What You will learn

  • Defining a RESTful Service?
  • Fundamentals of designing a REST API.
  • How to create a RESTful Service with all CRUD operations?
  • How to use Nodejs Express and MongoDB to create a RESTful API?
  • How to run various REST API with Postman?
  • What are the differences between GET, POST, PUT and DELETE methods in a request ?

Also Read :-

  1. Top 10 Ways to Check if an object is empty in Javascript
  2. How to Master Cron in nodejs
  3. Best Ways to Reverse a String in JavaScript

Overview of Express Mongodb Rest CRUD API example

We have seen how to build a simple project in Nodejs in earlier post , Now we will build a simple Nodejs Express CRUD REST API for a Todo application ,

  • Each Todo has id, title, description .
  • Api’s help to create, retrieve, update, delete Todo.
  • Apis also support custom finder methods such as find by title or by id.

These are APIs that we need to create :

GET/bookRetrieve all Book Lists
POST/bookAdd a new Book
PUT/bookUpdating an existing Book
GET/book:idGet details of specific Book
DELETE/book:idDelete a specific Book

Project Structure

Have a look at the Project Structure we are going to use in this post and also going forward.

nodejs project structure


Models will contain your backend MongoDB models and database schemas . We are going to use the models under this directory in our routes.


Routes are basically the API endpoints for a specific domain object . We are using domain based approach here . All the API related to user or book domain will reside here .


As the name suggests all the lib wil reside in lib folder , any common logic that you want to use should reside in the lib fodler.


Controller will have the logic for a routing and will be used as a callback inside routes.

Lets get started and have a look how we can write a basic CRUD rest api.

Configure Environment Variables

Before creating and coding any application we are required to have our environment variable setup in place . Lets go ahead and create a .env file in my working directory . Add the required configurations in your environment file . For now we will add PORT and MongoURL .


Configure and Connect with MongoDB

In order to connect with mongodb we need to create a file as shown above under config directory. Have a look at how we can Dockerize Nodejs Application .

mkdir config
vi mongo.js

Now we have create a file then we need to import the mongoose , first install mongoose like below.

npm install --save mongoose 

Now we need to import mongoose the file we have created in our server.js . Add the below line of code which will connect with MongoDB.

Note:- Make sure you have mongod service running and your mongodb is intstalled correctly.

Defining MongoDB Schema/Models

Lets go ahead and now define our mongo schemas for our CRUD application . We are going to create a users schema .

Learn More From Our Series