Students taking this course should have JavaScript programming experience.
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.
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
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