NodeJS Development

Course Overview

NodeJS is all about using JavaScript across the stack. With NodeJS you can use the same infrastructure/utilities for both client and server. NodeJS offers an impressive ecosystem of open source packages that can be combined to create a first-class server-side application.

During this 4-day course, we cover all the “must-know” details. We start with a brief introduction to NodeJS and then quickly step into core concepts like NPM, versioning, streams, testing, and more. At the end of the course, you will be able to develop server-side applications using NodeJS best practices.

  • Who should attend

    Software developers.

  • Prerequisites

    • Good familiarity with one of the OOP popular languages like Java or C#.
    • Basic familiarity with Javascript.
    • Basic familiarity with how the WEB works (HTTP, REST APIs).
    • No NodeJS experience is required.

Course Content

  • Practical JavaScript
    • Useful JavaScript “tricks”
    • IIFE
    • Module patterns: Plain, CJS & ES6
    • Prototypical classes & inheritance
    • ECMAScript 6+ new features
    • Typescript.

     

    Introducing NodeJS
    • What & why.
    • Installing NodeJS.
    • Building the first application.
    • Using built-in modules.
    • Using custom modules.
    • Debugging.
    • Integrating with Typescript.
    • Building a basic web server.
    • Working with REPL.

     

    Package Management
    • Creating new project.
    • Working with NPM.
    • Upgrading NPM.
    • Working with multiple versions of NodeJS.
    • Understanding package.json.
    • Introduction to Yarn.
    • Understand NodeJS versioning.
    • Creating/publishing new packages.
    • Choosing the right package.

     

    Working with core Modules
    • Understanding the Event Loop.
    • Simplifying asynchronous code using Promises & async/await.
    • File system API.
    • Streams API.
    • Simplifying command line processing using Yargs.
  • ExpressJS
    • Building basic application
    • Building Simple REST API
    • Configuring app
    • Working with Router
    • Working with view engines
    • Authentication/authorization
    • Using Passport
    • Custom middleware
    • Contextual data per request

     

    Communicating with Databases
    • Working with MySQL
    • Working with MongoDB/Mongoose

     

    Socket.IO
    • Why use real-time communication
    • When not to use
    • Understanding Web Socket protocol
    • Understanding Web Socket API
    • Using inside Express server
    • Working with Binary stream
    • Creating NodeJS client
    • Auto-reconnection
    • Room support

     

    Extra topics
    • Building unit tests.
    • Building E2E tests.
    • How to deal with CPU bound operations.
    • NodeJS clustering.

Want to learn how to develop with NodeJS?