All about NodeJS

Create & Deploy High Performance NodeJS Apps on the Cloud and More !
4.6 (745 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.
8,052 students enrolled
70% off
Take This Course
  • Lectures 133
  • Length 15.5 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 12/2014 English

Course Description

*** Course Updated on 25th August, 2016 ***

An all new and thoroughly revised ChatCAT section is now live! Featuring ES6 and a more comprehensive deep dive into building a practical NodeJS app using the Express framework.

About this Course

NodeJS is a platform that allows developers to write server side high performance and networked applications. And that too using good old Javascript. But wait ! Isn't Javascript meant to be used for forms and stuff on web pages ?

Well that was 10 years ago. The world has gone from 'Oops! You've not filled up the form properly !' days to today's modern web apps and social media sites that rely heavily on Javascript. Google Apps, Facebook, Twitter, Google Plus and LinkedIn, being handful examples of this movement. And to think that this quantum leap would not have been possible without Javascript is not an overstatement. Today, when you socialize with your friends on Facebook, or use your Gmail inbox, you're running thousands of lines of code written in Javascript, in your browser.

With NodeJS, you can take this knowledge back on the server, where usually you would expect to see the likes of PHP, Ruby, ASP dot NET etc. But that's only a small portion of the reason why NodeJS is so cool. The fact that you can write full blown networked applications (think chat servers, collaborative tools, real-time data visualization apps) with just a few lines of code is more than reason enough to not only look at NodeJS, but deep dive into it !

But I know PHP ? Why should I learn NodeJS ? Well, for starters, learning something new never hurts. But most importantly, learning NodeJS is great because :

  1. Node allows you to write highly scalable networked apps deployed on the cloud !
  2. You're working at a different level of application design per se with Node and that means that you're not writing an app that sits on top of a stack, you design the stack from the server up. And while that may sound daunting, it really is not and you'll see why.
  3. You code in the same language, both on the server and on the front end ! We're all polyglots (we use multiple programming languages and syntax in most of our projects), but managing code in the same language on the back-end and the front-end never hurts and in-fact can be a huge time saver when debugging.
  4. NodeJS is used by the likes of LinkedIn, Yahoo and Microsoft to name a few. Its pretty new and consequently you gain advantage from the exponentially growing community of NodeJS & Javascript developers and that's great fun, really !
  5. If you've been coding in Javascript, you can leverage your existing knowledge and skills and take it to a whole new level !

The Real Problem

So, NodeJS sounds pretty interesting so far, but what really hit me in the face when I was learning all about Node was the fact that, with any new platform, framework or technology, you need to take baby steps, all the way through, to making real world examples, if you have to get to the grips of it. And that leads us to why you're here.

In this course, we'll go from absolute scratch, all the way up to building and deploying full blown NodeJS app on the Cloud !

Project Oriented Learning

With NodeJS, we will build two full blown apps. We will go all the from concept creation, UI/UX design to coding and deploying our app on the cloud.

A. ChatCAT - One of the fun things that you can do with NodeJS is build realtime apps that allow a high number of concurrent users to interact with each other. Examples of this kind include Chat Servers, Gaming Servers, Collaborative Tools etc. We will build a multi-room chat server that allows users to login via Facebook, Create Chatrooms of their choice and Chat in realtime. We will not only create this app, but also deploy it on Heroku and Digital Ocean !

You will learn all about using Websockets, Structuring your App in an efficient manner, creating and using development & production configurations, Authentication using Facebook, Setting up an App on Facebook, Managing Sessions, Querying & Using a Hosted MongoDB Database, Using Heroku & Digital Ocean's Cloud Services and lots more...

B. PhotoGRID - The second complete app that we will build in this course is a Photo Gallery app which lets users upload images into a gallery with the ability to vote up the images that they like. This NodeJS app lets users upload files, which are then resized to thumbnails on the server and stored in an Amazon S3 Bucket for optimal delivery to the front end interface. The entire app runs on an Amazon EC2 Cloud Server which we will create from scratch and configure for use.

You will learn about managing file uploads using NodeJS & AJAX, Resizing Images on the Server, Accessing & Storing files in an S3 Bucket, Querying & Using a Hosted MongoDB Database, Using Amazon's Elastic IP Service & Cloudfront distribution, ensuring your NodeJS app runs automatically even if the server is restarted and lots more...

In the projects above, we leave no stone unturned in terms of execution. This is a complete hands-on course that is not just limited to NodeJS but to the ecosystem that needs attention when a NodeJS app is built and deployed. My intent is hand hold you all the way from writing your first app to deploying production level apps on the cloud.

And I'm always available to personally help you out, should you get stuck.

BONUS :: Here's the best thing about this course. The curriculum that you see gets you up and running with NodeJS & Cloud Deployment. However, there is so much more that you can do with NodeJS, which is why I will keep adding new lectures and sections to this course on an ongoing basis. There is so much more that you will get with full lifetime access to lectures and all updates !!

So, join in the fun !

What are the requirements?

  • Working knowledge of HTML, CSS and Javascript
  • Basic Working knowledge of an image editing application such as Adobe Photoshop would also help, but is not necessarily needed.

What am I going to get from this course?

  • Build High Performance and Scalable Apps using NodeJS
  • Learn about ES6 with my free eBook - ECMAScript 6 QuickBytes
  • Learn to use ES6 with Node.js
  • Use NodeJS Streams to write a Web Server
  • Use the Node Package Manager (NPM) for managing dependencies
  • Use the Express 4 Framework for building NodeJS Apps
  • Use the EJS templating language
  • Use the Hogan Templating Language
  • Understand MongoDB as a NoSQL Database
  • Create & Use MongoDB Databases using services like MongoLab
  • Create Realtime Apps that use Web Sockets
  • Upload & Resize Images using NodeJS
  • Integrate Authentication using Social Media Sites like Facebook
  • Structure the NodeJS app into modules
  • Create and Deploy EC2 Cloud Server Instances on Amazon Web Services
  • Create and Use Amazon's S3 Storage Service with NodeJS
  • Use Amazon's Cloudfront Service
  • Using Amazon's Elastic IP
  • Configure Security Groups, Ports & Forwarding on Amazon EC2
  • Deploy a NodeJS app on the EC2 Instance
  • Deploy a NodeJS app on Heroku
  • Deploy a NodeJS app on Digital Ocean
  • Install & Deploy NGINX as a Reverse Proxy Server for NodeJS Apps
  • Configure NGINX as a Load Balancer
  • Learn about Enterprise Integration
  • Create an app using the incredible Hapi framework
  • Install & Deploy Apache Apollo MQ with Node.js and a Python Script
  • Learn more about logging using the Hapi framework

Who is the target audience?

  • Understand the inner workings of NodeJS
  • Web Designers & Front End Developers who wish to extend their knowledge of Javascript for building high performance network applications.
  • Software Developers who want to build high performance network applications.
  • Absolute beginners with basic knowledge of HTML, CSS and Javascript, wanting to upgrade to professional Web Development and Building Web Apps.
  • PHP,, Perl, Java & Ruby coders wanting to leap onto the Node.Js bandwagon.
  • Anyone who wishes to get hands-on training with setting up an Amazon EC2 Instance with a host of other services like Cloudfront, Elastic IP and S3
  • Anyone who wishes to get hands-on training with deploying a NodeJS app on the cloud
  • Computer Engineering students
  • Tech Entrepreneurs who want to get their hands down and dirty with Web Coding & App Development.
  • Anyone who wishes to stay on the forefront of technology !

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Prologue

Thank you for joining this comprehensive course on NodeJS. I'm delighted to have you here. This video explores NodeJS from its fundamental concepts to its use case scenarios as well as establishes reasons why its becoming one of the hottest technologies to master.


NodeJS 4.x has brought native support for ECMAScript 6, out in the wild. So, here's a free eBook for everyone to get up and running with ECMAScript 6 today!

Since this course is being upgraded, all new lectures will support ES6. So, do read this work in progress document.

Also present is an Update Log that will keep you upto speed on the status of the course revision process.

Section 2: Installing NodeJS

In this video, we will download and install NodeJS on our Windows PC. To download NodeJS go to


In this video, we will download and install NodeJS on our Mac. To download NodeJS go to


There are many ways of installing NodeJS on Linux. In this screencast, we'll use the Node Version Manager - N to install NodeJS and npm on Ubuntu.

Installing and using muliple versions of NodeJS (Only on Mac/Linux)
Section 3: NodeJS Fundamentals
Before You Begin : Important Note

NodeJS provides an interactive terminal/shell based coding environment called R-E-P-L which stands for Read-Evaluate-Print-Line. A REPL interface executes one line or a code block at a time and hence is interactive. We can use Node's REPL for quickly experimenting with code.


In this lecture, you'll learn how to write your very first app with NodeJS - A Server that prints Hello NodeJS in the browser.


Routing refers to handling requests from users. In this lecture, we'll understand how requests and responses work in NodeJS and we'll take our first steps at understanding the process of routing.


In this screencast, we begin by writing a router that can handle GET requests.


Our router graduates up to handle POST requests in this screencast.


So how exactly do the requests and responses work in NodeJS?


How about writing a web server that serves a static HTML website!


It is very easy to write badly tangled up asynchronous code. So, let's detangle right away using Promises.


Streams is an amazing feature. Know all about it, in this screencast.


Modules help break down a bigger app into manageable chunks. In this screencast, you'll use an existing module to write an app that generates QR Codes. And we get to use NPM!


Finally, we get to write our very own module.

Section 4: MongoDB 101

MongoDB is a NoSQL database that stores data as documents in a format similar to JSON instead of using tables with rows and columns such as in a traditional RDBMS like MySQL MongoDB is schema-less which is pretty awesome for modern day product development lifecycles that need to be very dynamic and flexible. In this video, you'll be introduced to MongoDB.


Though we will be using a hosted MongoDB Implementation for our production examples in this course, in this video, we will download the MongoDB installer for Windows and we'll set it up to run as a windows service.


Here's how to install MongoDB locally on a Mac. For Mongo Shell and basic commands, refer to Lecture 10.


In this screencast, we'll play with the MongoDB Shell, a command line based interface to MongoDB, also based on the Chrome V8 engine.

Section 5: NodeJS Frameworks
What are frameworks?
Express and the MEAN Stack
Beyond the MEAN Stack
Section 6: ChatCAT - Creating a Realtime Multiroom Chat App & Deploying it on Heroku
The Goal
Structuring the app
Examining the user interface
Installing Nodemon
npm init and here we go!
Hello Express!
Middleware Ahoy!
The View Renderer
Serving Static Assets
Express Router : First Steps
Express Router : The routes object
Express Router : Mounting the routes - 1
Express Router : Mounting the routes - 2
Express Router : Handling a 404
Do we need a database? Yes we do!
MongoDB as a service |
Environments and the config loader
Mongoose and the database module
Sessions 101
Implementing sessions using the express-session middleware
Social Authentication : An Introduction
Social Authentication : Introduction to Passport
Social Authentication : Installing Passport & Strategies
Social Authentication : Registering the app on Facebook
Social Authentication : Facebook Strategy
Social Authentication : Database helpers
Social Authentication : Serializing & deserializing user data
Social Authentication : Routes
Social Authentication : Rendering name and profile picture
Social Authentication : Registering the app with Twitter
Social Authentication : Twitter Strategy
Social Authentication : The logout button
Social Authentication : Securing routes
03:24 | An introduction
07:22 | Installation and rewiring the server
03:57 | Storing chat rooms and user data
03:48 | Bridging with Session
02:25 | Setting up the Rooms Page
Socket.IO | Rendering the list of chatrooms
Socket.IO | Creating a new chatroom
Socket.IO | The chatroom route
Socket.IO | Joining a chatroom
Socket.IO | Updating the list of active users
Socket.IO | When a user leaves or disconnects
Socket.IO | The chat functionality
Sending images using Cloudinary (Optional)
Socket.IO | Scaling with Redis
Logging with Winston
Logging requests using Morgan
Heroku | An introduction
Heroku | Installing the Heroku Toolbelt CLI
Heroku | Preparing for deployment
Heroku | Setting up configuration variables
Heroku | Provisioning Redis
Heroku | Reconfiguring Facebook & Twitter and Deployment!
Heroku | Monitoring your app
Scaling up - An insight | Summary
Section 7: Node.JS on Amazon Web Services !

PhotoGRID is a photo gallery app that we'll build using NodeJS. We will build this app based on technologies that we've learnt so far and we'll take our experience one notch higher by integrating & deploying our app on the Amazon Elastic Compute Cloud (EC2). We will also use a couple of other AWS Services like the S3 Storage Service, Elastic IP & Cloudfront.

2 pages

This document should be read properly to avoid potential problems with this chapter.


As in the ChatCAT example, the User Interface files have been provided. We'll examine the user interface in this video.


In this video, we'll download Express 4.0 - one of the most popular frameworks for making NodeJS apps. Once done, we'll create a basic scaffold for a working Express app. We'll also install SocketIO & Hogan-Express modules as well.


In this video, we'll create a Routes module like how we created in the ChatCAT example.


In this video we'll create configuration files and a module to manage development and production environments.


Amazon is the global leader in Cloud Computing Services. In this video, we'll signup for an account on Amazon Web Services and we'll begin by provisioning an S3 (Simple Storage Service) Bucket to store all the photos that the user uploads via PhotoGRID.


Access to an Amazon S3 Bucket depends on a bucket policy, without which users would be unable to access files. In this video we'll create a bucket policy.


To enable our PhotoGRID app to interact with the Amazon S3 Bucket, we'll use the KnoxJS module. In this video we'll download and setup the KnoxJS module.


In this video, we'll prep our front end to transfer files using a custom built AJAX function. Instead of using jQuery or similar libraries, we'll cook our own AJAX function.


Once the Javascript on the front end UI sends the file using AJAX, we'll use the Formidable module to receive the files within the NodeJS app. In this video we'll download and setup Formidable so it is able to receive files.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Sachin Bhatnagar, Educator and Digital Solutions Architect

Sachin began dabbling with Computer Programming & Graphics at the age of 14 on a Sinclair Spectrum Home Computer using the BASIC language. During the early 2000s, Sachin was instrumental in crafting web based CRM solutions for a prominent Internet Service Provider in India. In 2001, Sachin ventured into Computer Graphics & Visual Effects training and production. From developing world class curriculum to imparting training to over 1000 students over a course of 10 years, Sachin has been instrumental in fueling innovation, creating brand identities and crafting world class software solutions for corporate companies and individuals alike.

Sachin has also supervised award winning animation and visual effects short films and is currently working with one of India's top most Media & Entertainment Education brands as a Vice President. Sachin's first love is coding and he strongly emphasizes its importance to all students.

With a strong background in design and programming, Sachin is also a budding writer and a world cuisine connoisseur. With over 12+ years of Industry experience in industries as diverse as Software Development, Animation, Visual Effects, Film Making, Education & Brand Management behind him, Sachin strongly believes in perseverance, attention to detail and logic as mantras to a successful professional life.

Ready to start learning?
Take This Course