Building Server Applications using Node.js

Course Overview:

This workshop teaches the participants how to design and develop server side applications using the event-driven, non-blocking model framework Node.js. This program inducts the participant in some of the advanced concepts of the JavaScript language so that the participant is well equipped to build end-to-end application using JavaScript.

Course Objectives:

  • Understand the non-blocking nature of Node.js
  • Writing asynchronous code with callbacks and streams
  • Learn how to modularize code using NPM and require()
  • Understand and take advantage of the built-in apis for building scalable few applications
  • Learn how to build web applications using Express.js
  • Understand how to handle authentication and authorization
  • Learn how to build real-time applications using WebSockets and socket.io

Pre-requisites:

  • Experience in application development in any programming language
  • Intermediate to advanced knowledge of the JavaScript language
  • Exposure to any server technology (J2EE, .NET, Ruby etc)

Target Audience:

  • Web developer who wants to build data intensive scalable applications using Node.js

Course Duration:

  • 21 hours – 3 days

Course Content:

Day 1 

New in ES6

  • Classes
  • let and const
  • Arrow functions
  • Enhanced Object Literals
  • Destructuring
  • Spread Operator
  • Generators and Iterators
  • Symbols
  • Comprehensions
  • Async Programming using Promises
  • Async Programming using Async Await

Introduction to Node.js

  • Installing Node.js
  • Node’s Event Loop
  • Alternatives to Node.js
  • Writing asynchronous code

Unit Testing

  • Writing Tests Using Mocha.js
  • Assertion helpers in Chai.js
  • Mocks using sinon.js
  • Setting up a test harness for Node applications

Modularizing code

  • Understanding built-in modules
  • Techniques for modularizing JavaScirpt code
  • Using require() to modularize application code
  • Using npm for third-party modules
  • Handling Exceptions

Events and Streams

  • Understanding Events
  • EventEmitter class
  • Understanding Streams
  • Reading and writing streams
  • Using pipe()

Day 2 

Accessing Local Resources

  • Process Object
  • Manipulating File System
  • Understanding Buffers

Node.js and the web

  • Handling web requests
  • Building a web server
  • Understanding the need for web sockets
  • Realtime interaction using socket.io

Building web applications using Fastify.js / Express.js

  • Installing Fastify.js / Express.js
  • Routing
  • Parameters and queries in routing
  • Serving Data
  • Routing
  • Using plugins (middlewares)
  • Working with cookies and sessions
  • Authentication and authorization
  • Error Handling
  • Persisting data in the database

Messaging Using RabbitMQ

  • Introduction
  • Queing Architecture
  • Installation & Configuration
  • RabbitMQ Exchanges
  • Routing
  • Publisher & Subscriber of Messages
  • Sending & Receiving Messages

Day 3 

Deploying Node applications

  • Setting ‘ENVIRONMENT’
  • Setting appropriate environment variables
  • Handling appropriate logging levels
  • Ensure application auto restarting
  • Using a Process Manager
  • Using PM2
  • Using a Cache Server

Building Microservices 

  • Building Microservices
  • Hosting Microservies in containers (Docker)
  • Microservices Tenants

 Scaling Node applications

  • The Child process model
  • exec, spawn, and fork functions
  • Using the Cluster module
  • Node Packages
  • Packages of interest
  • Deciding Factors

Debugging Node Applications 

  • Node Inspector
  • Using –-inspect switch in node
  • Using ‘debug’ module Using the ‘debugger’ expression
  • Summary and Closing Remarks

 

Course Customization Options

To request a customized training for this course, please contact us to arrange.

Best selling courses

CLOUD COMPUTING

Enterprise Architecture

DATA SCIENCE

Tableau Basic

ARTIFICIAL INTELLIGENCE / MACHINE LEARNING / DEEP LEARNING

RPA with UiPath

PROGRAMMING / CODING

MATLAB Fundamentals