Node.js
Solid foundations for developing back-end applications in JavaScript
What you will learn
- Understand the architecture and core concepts of Node.js
- Master asynchronous programming, events, and streams
- Implement robust error handling
- Create network applications (TCP/UDP and HTTP/HTTPS servers)
- Develop RESTful web back-ends using popular frameworks like Express.js
- Interact with file systems and databases
- Package and deploy Node.js applications
Prerequisites
- Having completed the JavaScript: The fundamentals of the language course or having equivalent knowledge
Target audience
- Developers, Integrators, Software architects, Technical project managers
Training Program
10 modules to master the fundamentals
Topics covered
- →What is Node.js?
- →Tools: node and npm
- →Node.js development environment
- →Node.js architecture concepts: IO, asynchronous, non-blocking, concurrency, event-loop, scalability
Activities
Installation of Node.js and a development environment
Demonstration of the event loop through a first asynchronous / non-blocking program
REPL
Topics covered
- →Event-based architecture of Node.js
- →Event and EventEmitter
- →Synchronous vs Asynchronous
- →Managing multiple or single events
- →Error handling
Activities
Development of a custom EventEmitter
Topics covered
- →Examples of streaming data managed by Node.js
- →The different types of Streams
- →Internal buffers
- →Pipelines
Activities
Consume a Readable stream (http, fs)
Write to a Writable stream (fs)
Use a Duplex stream (net.Socket)
Use a Transform stream (zlib)
Topics covered
- →The different types of errors
- →Error handling in synchronous APIs
- →Error handling in asynchronous APIs
- →Assertions
- →Logging via the Console API
- →Debugging a Node.js program
Activities
Error handling in synchronous APIs
Error handling in asynchronous APIs
Debugging a Node.js program in an IDE or Chrome
Topics covered
- →Global Object and inter-module scope
- →Globally accessible objects
- →Modules, scopes, and file management
- →Core modules
- →Main module
- →Module loading algorithm and module cache
- →NPM and third-party modules
Activities
Using the Global object
Globally accessible objects: process
Using core modules: timer, OS, Util, Path, ...
Creating an internal application module
Creating a Node.js project via NPM and installing popular modules
Topics covered
- →Net module for creating TCP servers and clients
- →UDP/Datagram module for creating UDP/Datagram servers and clients
Activities
Creating TCP clients / server
Creating UDP/Datagram clients / server
Topics covered
- →http, https, and http/2 modules for creating servers and clients
- →url module to handle http requests
Activities
Creating http, https, and http/2 servers and clients for a website
Creating http, https, and http/2 servers and clients for a RESTful webservice
Topics covered
- →The fs module and its proximity to POSIX
- →Synchronous APIs vs Asynchronous APIs
Activities
Interacting with the file system via synchronous and asynchronous APIs
Topics covered
- →Data management with Relational (MySQL) or NoSQL (Mongo, Redis) databases
- →Middleware management (connect, expressjs)
- →Template management (ejs)
Activities
Creating a static and dynamic web back-end with express.js
Creating a RESTful API with express.js
Topics covered
- →NPM: main commands
- →NPM: packaging a module
- →Different deployment modes for a Node.js project
- →Forever and PM2 modules
Activities
Packaging a library
Dockerizing a Node.js web application
Quality Process
SFEIR Institute's commitment: an excellence approach to ensure the quality and success of all our training programs. Learn more about our quality approach
- Lectures / Theoretical Slides — Presentation of concepts using visual aids (PowerPoint, PDF).
- Technical Demonstration (Demos) — The instructor performs a task or procedure while students observe.
- Guided Labs — Guided practical exercises on software, hardware, or technical environments.
The achievement of training objectives is evaluated at multiple levels to ensure quality:
- Continuous Knowledge Assessment : Verification of knowledge throughout the training via participatory methods (quizzes, practical exercises, case studies) under instructor supervision.
- Progress Measurement : Comparative self-assessment system including an initial diagnostic to determine the starting level, followed by a final evaluation to validate skills development.
- Quality Evaluation : End-of-session satisfaction questionnaire to measure the relevance and effectiveness of the training as perceived by participants.
Train multiple employees
- Volume discounts (multiple seats)
- Private or custom session
- On-site or remote