Node.JS Introduction

Node.JS Introduction

Audience

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

Prerequisites

Delegates taking this course should have JavaScript programming experience.

Duration

3 days. hands on.

Course Objectives

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.

Course Content

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

Virtual Courses

ALL of our courses can be delivered virtually. And our Bath public schedule of courses are now available as live virtual sessions, using the popular Zoom Virtual Classroom and remote labs. Delegates can test their access at: www.zoom.us/test

Public Courses

On-Site Courses

Can't attend one of our public classes? Booking for multiple people?

All our courses are available on your site! Delivered for your staff, at your premises.

Contact us to find out more...