SFEIR InstituteNODEJS

Node.js

3 days / 21h

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.

Target audience

  • 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

Prerequisites

Developers, integrators, software architects, technical project managers

Course Outline

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

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

Workshops:

  • 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

Workshops:

  • Custom EventEmitter development

3 Streams

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

Workshops:

  • 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

Workshops:

  • 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

Workshops:

  • 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

Workshops:

  • 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

Workshops:

  • 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

Workshops:

  • 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)

Workshops:

  • 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

Workshops:

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

Ce cours vous intéresse ?

Organize a dedicated session
for your organization
Does your company need a personalized
offer? Contact us