Course Code: nodejsdev
Duration: 21 hours
Prerequisites:

Students taking this course should have JavaScript programming experience.

Overview:

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.

Objectives

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 Outline:

Intro to Node.js

  • RAM vs. I/O latency
  • Blocking vs. Non-Blocking
  • Event-driven Programming
  • Event Loop
  • Blocking The Event Loop
  • Node.js Philosophy

Node.js Platform Setup

  • Download and Install
  • Node REPL
  • First Hello World

Modules and npm

  • Anatomy of a module
  • Private code
  • Accessing and using modules
  • npm commands
  • package.json

The Callback Pattern

  • What are callbacks
  • Callback-last
  • Error-first

Events

  • When to use Event Emitters
  • Binding Functions to Events
  • Event Requests
  • Event Listening

Error Handling

  • Callbacks: Error-first
  • Errors in Event Emitters
  • Uncaught Exceptions
  • Using Domains

Buffers

  • Why Buffers exist
  • Creating Buffers
  • Reading and Writing Buffers
  • Manipulating Buffers

Streams

  • What are streams
  • Read and Write Stream API
  • Flow Control
  • Piping
  • Duplex Stream
  • Transform Stream

Express.js

  • Intro and Installing Express.js
  • Building a Hello Express application
  • Creating routes
  • Rendering Layouts
  • Using templates
  • Adding partials
  • Using locals and conditional templates
  • Modularizing routes

Socket.io

  • Listening for
  • Broadcasting
  • Answering questions

Connecting to Databases

  • No SQL and Document Stores
  • Relational DBs
  • Configuration and platform setup
  • CRUD Operations
Sites Published:

United Arab Emirates - Node.js for JavaScript Developers

Qatar - Node.js for JavaScript Developers

Egypt - Node.js for JavaScript Developers

Saudi Arabia - Node.js for JavaScript Developers

South Africa - Node.js for JavaScript Developers

Brasil - Node.js para Desenvolvedores de JavaScript

Canada - Node.js for JavaScript Developers

中国 - Node.js for JavaScript Developers

香港 - Node.js for JavaScript Developers

澳門 - Node.js for JavaScript Developers

台灣 - Node.js for JavaScript Developers

USA - Node.js for JavaScript Developers

Österreich - Node.js for JavaScript Developers

Schweiz - Node.js for JavaScript Developers

Deutschland - Node.js for JavaScript Developers

Czech Republic - Node.js for JavaScript Developers

Denmark - Node.js for JavaScript Developers

Estonia - Node.js for JavaScript Developers

Finland - Node.js for JavaScript Developers

Greece - Node.js for JavaScript Developers

Magyarország - Node.js for JavaScript Developers

Ireland - Node.js for JavaScript Developers

Luxembourg - Node.js for JavaScript Developers

Latvia - Node.js for JavaScript Developers

España - Node.js para Desarrolladores de JavaScript

Italia - Node.js for JavaScript Developers

Lithuania - Node.js for JavaScript Developers

Nederland - Node.js for JavaScript Developers

Norway - Node.js for JavaScript Developers

Portugal - Node.js para Desenvolvedores de JavaScript

România - Node.js for JavaScript Developers

Sverige - Node.js for JavaScript Developers

Türkiye - Node.js for JavaScript Developers

Malta - Node.js for JavaScript Developers

Belgique - Node.js for JavaScript Developers

France - Node.js for JavaScript Developers

日本 - Node.js for JavaScript Developers

Australia - Node.js for JavaScript Developers

Malaysia - Node.js for JavaScript Developers

New Zealand - Node.js for JavaScript Developers

Philippines - Node.js for JavaScript Developers

Singapore - Node.js for JavaScript Developers

Thailand - Node.js for JavaScript Developers

Vietnam - Node.js for JavaScript Developers

India - Node.js for JavaScript Developers

Argentina - Node.js para Desarrolladores de JavaScript

Chile - Node.js para Desarrolladores de JavaScript

Costa Rica - Node.js para Desarrolladores de JavaScript

Ecuador - Node.js para Desarrolladores de JavaScript

Guatemala - Node.js para Desarrolladores de JavaScript

Colombia - Node.js para Desarrolladores de JavaScript

México - Node.js para Desarrolladores de JavaScript

Panama - Node.js para Desarrolladores de JavaScript

Peru - Node.js para Desarrolladores de JavaScript

Uruguay - Node.js para Desarrolladores de JavaScript

Venezuela - Node.js para Desarrolladores de JavaScript

Polska - Node.js for JavaScript Developers

United Kingdom - Node.js for JavaScript Developers

South Korea - Node.js for JavaScript Developers

Pakistan - Node.js for JavaScript Developers

Sri Lanka - Node.js for JavaScript Developers

Bulgaria - Node.js for JavaScript Developers

Bolivia - Node.js para Desarrolladores de JavaScript

Indonesia - Node.js for JavaScript Developers

Kazakhstan - Node.js for JavaScript Developers

Moldova - Node.js for JavaScript Developers

Morocco - Node.js for JavaScript Developers

Tunisia - Node.js for JavaScript Developers

Kuwait - Node.js for JavaScript Developers

Oman - Node.js for JavaScript Developers

Slovakia - Node.js for JavaScript Developers

Kenya - Node.js for JavaScript Developers

Nigeria - Node.js for JavaScript Developers

Botswana - Node.js for JavaScript Developers

Slovenia - Node.js for JavaScript Developers

Croatia - Node.js for JavaScript Developers

Serbia - Node.js for JavaScript Developers

Bhutan - Node.js for JavaScript Developers

Nepal - Node.js for JavaScript Developers

Uzbekistan - Node.js for JavaScript Developers