logo

NodeJS Course

course overview

Click to View dates & book now

Overview

Node.js is a platform for easily building fast, scalable network applications. Learn how to use the event-driven, non-blocking I/O model to build data-intensive real-time applications that run across distributed devices.

We will explore the design choices that make Node.js unique, how this changes the way applications are built and how systems of applications work most effectively in this model. Learn how to create modular code that's robust, expressive and clear. Understand when to use callbacks, event emitters and streams. Use streams to easily manipulate data that would be impossible to fit in application memory. Gain confidence in handling errors effectively to ensure runtime reliability.

The course has extensive lab exercises to reinforce the concepts and techniques covered.

On completion of this course, students will be able to:

  • Clearly understand the platform design choices that led to Node.js choosing an event loop and what this means for applications built on that foundation.
  • Understand the unique trade-offs present in event-driven programming.
  • Create Node.js modules and express code modularity in an application.
  • Understand the core flow control patterns in Node.js and know when it is appropriate to use callbacks, event emitters or streams.
  • Create and manipulate buffers efficiently.
  • Understand how to manage error state and know when a process should exit due to an error.
  • Build network applications with Node.js.

Audience

Web developers wishing to make use of the popular Node.JS platform.

Prerequisites

Delegates taking this course should have JavaScript programming experience.

Outline

  • Intro to Node.js
  • RAM vs. I/O latency.
  • Blocking vs. Non-Blocking.
  • Event-driven Programming.
  • JavaScript Closures.
  • Event Loop.
  • Blocking The Event Loop.
  • Node.js Philosophy (userland vs. core).
  • Installing Node.js
  • Download and Install.
  • Node REPL.
  • First Hello World.
  • References (API docs, Mailing List, etc...).
  • Modules and npm
  • Anatomy of a module.
  • Private code.
  • Accessing and using modules.
  • npm commands.
  • package.json.
  • The Callback Pattern
  • What are callbacks.
  • Examples.
  • Callback-last.
  • Error-first.
  • Event Emitter
  • When to use Event Emitters.
  • Binding Functions to Events.
  • Creating an Event Emitter.
  • Error Handling
  • Callbacks: Error-first.
  • Errors in Event Emitters.
  • Uncaught Exceptions.
  • Using Domains.
  • Buffers
  • Why Buffers exist.
  • Creating Buffers.
  • Reading Buffers.
  • Writing Buffers.
  • Manipulating Buffers.
  • Streams
  • What are streams.
  • Read Stream API.
  • Write Stream API.
  • Flow Control.
  • Piping.
  • Duplex Stream.
  • Transform Stream.

Talk to an expert

Thinking about Onsite?

If you need training for 3 or more people, you should ask us about onsite training. Putting aside the obvious location benefit, content can be customised to better meet your business objectives and more can be covered than in a public classroom. Its a cost effective option. One on one training can be delivered too, at reasonable rates.

Submit an enquiry from any page on this site, and let us know you are interested in the requirements box, or simply mention it when we contact you.

All $ prices are in USD unless it’s a NZ or AU date

SPVC = Self Paced Virtual Class

LVC = Live Virtual Class

Please Note: All courses are availaible as Live Virtual Classes

Trusted by over 1/2 million students in 15 countries

Our clients have included prestigious national organisations such as Oxford University Press, multi-national private corporations such as JP Morgan and HSBC, as well as public sector institutions such as the Department of Defence and the Department of Health.