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
Our training sessions
Warning: Undefined array key "distance" in /home/clients/94c8a849e47edb86d6f693160c181546/institute-sfeirprod/wp-content/themes/sfeir/template-parts/modules/formation/formation-sessions.php on line 79
Ce cours vous intéresse ?
offer? Contact us