BSAN - Building Server Applications using Node.js


Duration: 3 days
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.


At the end of this training course, the participants will:
  • 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



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 

2. Introduction to Node.js

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

3. Unit Testing

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

4. 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 

5. Events and Streams

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


6. Accessing Local Resources

  • Process Object 
  • Manipulating File System 
  • Understanding Buffers 

7. Node.js and the web

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

8. 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 

9. Messaging Using RabbitMQ

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


10. 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 

11. Building Microservices 

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

12. Scaling Node applications

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

13. Debugging Node Applications 

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


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


  • 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)


Trainocate Certificate of Attendance


Show Schedule for: