3 days (21 hours)

Course overview

Node.js is a set of technologies allowing the execution of JavaScript code but also managing one’s software project and its dependencies with other libraries. Node.js has established itself as a major technology for fullstack JavaScript development thanks to its pragmatic and efficient approach. A large majority of projects using JavaScript use Node.js whether to create websites, develop web services or REST APIs, or as a building block for front-end or back-end applications.

Learning outcomes

This course teaches participants the following skills:

  • Understanding the architecture of Node.js
  • Install, configure and deploy JavaScript applications running on Node.js
  • Develop non-blocking asynchronous applications with Node.js
  • Implement the main built-in modules of Node.js: file system, network servers and http(s)
  • Develop dynamic web applications and REST APIs with Node.js


To get the most out of this course, participants should have:

Have taken the course ‘JavaScript: language fundamentals’ or have equivalent knowledge

Target audience

This course is intended for the following participants:

Developers, integrators, software architects, technical project managers

Course Outline

1 Introduction to Node.js

  • What is Node.js?
  • The tools: node and npm
  • Node.js development environment
  • Node.js architecture concepts: IO, asynchronous, non-blocking, concurrency, event-loop, scalability


  • Installation of Node.js and a development environment
  • Demonstration of the event loop through a first asynchronous / non-blocking program
  • REPL

2 Events

  • Node.js event-based architecture
  • Event and EventEmitter
  • Synchronous vs. Asynchronous
  • Management of multiple or single events
  • Error management


  • Custom EventEmitter development

3 Streams

  • Examples of streaming data managed by Node.js
  • The different types of Streams
  • Internal buffers
  • Pipelines


  • Consume a Readable stream (http, fs)
  • Writing in a Writable (fs) stream
  • Exploiting a Duplex stream (net.Socket)
  • Use a Transform stream (zlib)

4 Error handling

  • 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


  • Error handling in synchronous APIs
  • Error handling in asynchronous APIs
  • Debug a Node.js program in its IDE or in Chrome

5 Modularity

  • 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


  • Using the Global object
  • Globally accessible objects: process
  • Use of core modules: timer, OS, Util, Path,…
  • Internal module creation for the application
  • Creation of a Node.js project via NPM and installation of popular modules

6 TCP/UDP Servers/Clients

  • Net module for creating TCP servers and clients
  • UDP/Datagram module for creating UDP/Datagram servers and clients


  • Creation of TCP server/clients
  • Creation of UDP/Datagram server/clients

7 Http, https and http/2 servers and clients

  • Http, https and http/2 modules for creating http, https and http/2 servers and clients
  • Url module to process http requests


  • Creation of http, https and http/2 servers and clients as part of a website
  • Creation of http, https and http/2 servers and clients as part of a RESTFul webservice

8 File system interactions

  • The fs module and its closeness to POSIX
  • Synchronous APIs vs Asynchronous APIs


  • File system interactions via synchronous and asynchronous APIs

9 Web back-end development

  • Data management with Relational databases (Mysql) or NoSQL (Mongo, Redis)
  • Middleware management (connect, expressjs)
  • Template management (ejs)


  • Creation of a static and dynamic web backend with express.js
  • Creation of a RESTFul API with express.js

10 Deploy a Node.js application

  • NPM: the main commands
  • NPM: packaging a module
  • Different ways of deploying a Node.js project
  • Forever and PM2 modules


  • Package a library
  • Dockerize a Node.js web application

€1590 ex. VAT

Contact us

You can unsubscribe from our communications at any time.

In order to take into account your request, we must store and process your personal data. If you authorize us to store your personal data for this purpose, check the box below.

By clicking on « Send » below, you authorize SFEIR to store and process the personal data submitted above so that it can provide you with the requested content.