Web Development with NodeJS and MongoDB
3.2 (27 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
259 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Web Development with NodeJS and MongoDB to your Wishlist.

Add to Wishlist

Web Development with NodeJS and MongoDB

A practical guide to building an interactive and fully-featured web application from scratch with NodeJS and MongoDB
3.2 (27 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
259 students enrolled
Created by Packt Publishing
Last updated 2/2016
Current price: $10 Original price: $85 Discount: 88% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 4 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Write scripts in NodeJS and understand when NodeJS is the right tool for the job and when it should be avoided
  • Master the article of writing modular applications
  • Improve the quality of the application by persisting and manipulating data with MongoDB database
  • Build on the shoulders of giants by consuming your data through the RESTful API
  • Focus on the value by better understanding and quality through automatic testing
  • Improve customer retention and loyalty by ensuring your application stays fast and reliable
  • Introduce your application to the world by deploying it on the cloud
View Curriculum
  • The course will teach you a lot about what is required to build web applications, but you should have a basic knowledge of HTML / CSS and most importantly JavaScript before starting the course.

Web development technology moves at a very fast pace with new tools and techniques being released daily. It is impossible to learn them all, but choosing similar technologies allows you to step up your game while developing web applications. Web applications are often split into two parts: the front end and the back end. Using NodeJS for logic and MongoDB for persistence, a single person can develop a real-time web application in no time. NodeJS is based on JavaScript, which makes it easily adaptable for a wide-variety of platforms. It is also lightweight, and handles a huge number of simultaneous connections.

Web Development with NodeJS and MongoDB will show you how to build powerful web applications from the ground up. Starting with the simplest "hello world"-based script and moving on to more and more advanced techniques, this course will show you what is possible while building your application.

We'll begin with some of the basic concepts of NodeJS, ExpressJS, and MongoDB and build on this knowledge with practical examples. With each concept, the application will get more powerful and you will be able to process any business logic you may need.

We will then learn about ExpressJS to make web applications and MongoDB to persist your data. Then you will find out how to build on the shoulders of giants by consuming a RESTful API or become a giant by serving your own API. Later on, you’ll get to grips with automatically testing your application to make sure it is functioning properly.

At the end, we will take a look at deploying our application and improving its performance. The course closes with suggestions on further improvements that can be made to the application.

About The Author

Andrew Marcinkevičius is a professional web developer, and he has been building web applications for more than 5 years. He has worked with small businesses, government agencies, and start-ups to solve their problems in the field of web development.

One of his beliefs is that continuous learning should be a part of everyone's life and you learn in-depth knowledge while teaching others. He works as an independent developer and shares his thoughts on his website.

Who is the target audience?
  • If you wish to build a complete web application using JavaScript, this course is for you.
Compare to Other Web Development Courses
Curriculum For This Course
41 Lectures
Getting to Know NodeJS
5 Lectures 28:46

This video will provide the overview of the entire course.

The Course Overview

There are a lot of languages and frameworks that can be used for web development. This video will explain what NodeJS is, where it's used, and when you might want to use it.

NodeJS Basics

It’s important to know about when and how the tool will be used. In this video, we will learn a little more about how NodeJS works.

Blocking Versus Non-blocking Code

To start making an application with NodeJS, we need to have a development environment. For this, we will install NodeJS and nodemon to help us with development.

Setting Up Your Environment

Every programming language has its own way of executing code. You will learn how to build a sample CLI application and how to debug it.

Hello Workout
Understanding NodeJS Apps
5 Lectures 30:38

To have good quality code, it's important to separate it into small pieces (modules). You will learn about CommonJS and how to make your code modular.

Preview 03:48

It's not valuable to write something that already exists and has been improved by multiple people. To start reusing the code, we will see how to use npm.


To write good applications, we need to know how the code is executed. We will see how code is executed in NodeJS.

The Event Loop

Slow performance and high resource consumption can lower the application's quality by a great margin. Knowing how to use streams will improve the application’s performance and use fewer resources.

Working with Streams

Working with files is a big part of making applications. You will learn how to manipulate the files using NodeJS.

Working with Files
Creating MVC Apps with ExpressJS
5 Lectures 27:27

NodeJS allows us to create what we want, but we will have to make a lot of repeating solutions ourselves to have a working web application. This can be solved by using a web framework and third-party libraries.

Preview 04:39

Applications grow fast and it can lead to spaghetti code which is hard to maintain. Adding some proved structure allows to keep applications easy to maintain, test and reuse.


To have a truly dynamic application it requires some way of distinguishing what a user is requesting. This can be done by defining routing for an application to respond to specific requests.


Creating new applications often contain the same steps. To avoid iterative tasks we can use tools and third-party libraries to scaffold our applications.

Scaffolding an App

When developing dynamic applications, pages need to change depending on the data provided. Using a templating engine allows us to generate HTML pages without having to repeat ourselves.

Templating with Handlebars
Persisting with MongoDB
6 Lectures 34:20

It's very hard to make a dynamic application without storing our data for retrieval and manipulation. We will learn about the MongoDB database for persisting our data.

Preview 05:45

Different problems have different requirements for solving that problem. Knowing what NoSQL is and what it provides, allows us to choose the best tool for the job.


To have a solution which solves our problems with good performance, we need to model our data as close as possible to a real model. This can be achieved by knowing how MongoDB structures and stores data in the database.

Schema and Data Types

To make the most of databases, you need to learn how to use them. We will see how to execute CRUD operations in MongoDB database.


To have the dynamic application, we need to be able to manipulate our database from our application. We will see how to connect to MongoDB and execute database operations from NodeJS.

Integrating with NodeJS

The data we work with often contains business logic and requires things such as validation. This can be solved by representing data as objects and adding behaviors to them.

Communicating with RESTful APIs
5 Lectures 30:47

There can be a scenario where you need to consume data from another vendor or provide your data to a vendor. RESTful APIs provide a simple way of sharing and consuming the data.

Preview 07:18

Before providing a RESTful API for consumers, we need to know how to make one. We will see how ExpressJS helps us with that and how our API will look.

Serving APIs

When an application is based on a different application, we need a way to consume that data. Using different ways, we will consume data from the Meetup API.

Consuming on the Server-side

RESTful APIs start to shine when they are consumed by front-end applications. Consuming an API from the frontend allows developing the application and API separately.

Consuming on the Client-side

CRUD is the most common operation that would be performed with our data. If our RESTful API provides them, it allows any consumer to manipulate our data.

Unit Testing with Mocha
5 Lectures 28:42

Fixing bugs and manual testing takes a lot of time and effort. Using unit testing and test-driven development allows us to automate testing and fix bugs early.

Preview 06:43

Manual testing is tedious and time consuming. You will learn about tools that allow us to write automated tests.

Mocha and Chai

Our code should be easy to test, but it often has dependencies making it harder to test. Spying, stubbing, and faking allow us to make our code easier to test.

Spying and Stubbing

Our code should be easy to test, but it often has dependencies that make it harder to test. Spying, stubbing and faking allow us to make our code easier to test.

Mocking with SinonJS

The applications are consumed on different browsers leading to different results. Using Karma we can test in multiple browsers to make sure the front-end JavaScript is working as expected.

Running with Karma
Shipping and Deploying
5 Lectures 25:30

The applications are consumed on different browsers leading to different results. Using Karma we can test in multiple browsers to make sure the front-end JavaScript is working as expected.

Preview 05:07

Manually managing dependencies is time consuming. We can automate it by using a package manager.


Writing the same code again and again takes a lot of time. By publishing the package, we can simplify sharing and reusing that code.

Publishing to npm

For other people to start using our application, it has to be hosted somewhere. We will look into one of the choices for hosting—PaaS.

Heroku Basics

To make our application available for the public, it has to be hosted somewhere. Using Heroku, we can deploy it to the cloud without having to manage the infrastructure.

Deploying on Heroku
Ramping Up on Full-Stack JavaScript
5 Lectures 28:04

Slow applications can lead to lost users and revenue. Optimizing page performance enables users to continue using the application.

Preview 06:42

Applications are made from different components that often have the same logic. Making the application isomorphic allows using the same code on the server and the client.

Isomorphic JavaScript

The bigger the application grows the more complex it gets to generate its assets. Using webpack, we can automate the generation of application assets.

Bundling with Webpack

Some actions take a long time to finish giving an appearance of slow performance. By delegating the actions to a job queue, an application can respond faster.

Finishing the App

There is a lot that can be done with an application. This often depends on the project requirements and resources. We will look into some ways to improve our application and improve the development workflow.

Final Remarks
About the Instructor
Packt Publishing
3.9 Average rating
8,197 Reviews
58,892 Students
687 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.