Node.JS Development | | Software Development
Node.JS Development
Duration
12 hours
Location
Online
Language
English
Code
WEB-017
€ 350 *
Training for 7-8 or more people? Customize trainings for your specific needs
Description
Course includes all necessary information about Node.JS: NPM package manager, Express framework (routing, Pug template engine, middleware), REST approach, working asynchronously with NodeJS API, working with the file system, basic concepts of MongoDb and how to use it from Node.JS application. Also it covers advanced topics like NodeJS event loop, timers, event emitters, using Node streams, using Kafka for message exchange, WebSocket protocol, deploying and monitoring Node application in the cluster mode.Throughout the course participants will build a real life web application with REST API which stores data in session, files and MongoDb database (frontend UI is provided). Course includes step by step solutions of the tasks, as well as additional tasks to gain the practical experience.
Course is suitable for web developers (React/Angular/Vue) and backend developers. Basic knowledge of JavaScript is required.

After completing the course, a certificate
is issued on the Luxoft Training form
is issued on the Luxoft Training form
Objectives
Course aims to introduce listeners to NodeJS platform and features and to demonstrate how these features can be used in practice.
Target Audience
JavaScript developers
Prerequisites
JavaScript
Roadmap
a:2:{s:4:"TEXT";s:5035:"NodeJS basics
• What is Node.JS?
• Node.JS features
• Multithreaded server request processing
• Node.JS request processing with event loop
• NPM package manager
o package.json
o package-lock.json
o NPM folders
o Semantic versioning in NPM
o NPM commands
o Nodemon
• CommonJS and ES2015 module systems
• Simple http server
• Simple http server returning JSON
Express framework
• Minimal Express app
• MVC pattern
• Express routing
o Request params
o Request query
o App.route()
o Put router to separate module
o Response methods
• Pug template engine
o Loops in Pug
o Conditions and variables
o Each
o Template inheritance
o Block append/prepend
o Mixins
• Middleware
o What is middleware
o How to create your own middleware (example with logging)
o Middleware to work with sessions
o Body-parser to parse POST requests body
o Express structure with middleware
o Middleware to serve static files
o Restricting middleware to route
o Order of middleware calls
• Express in practice
• Rest approach
o MVC pattern with REST server
o REST requests to obtain data
o Creating data in REST
o Updating and deleting data in REST
o Returning data format, Content-Type and Accept headers
o REST API summary and use cases
o REST statelessness vs statefulness
o REST statelessness and scalability
o REST statelessness and reliability
• Using Express to create REST service
• Error handling in Express
o Default error handler
o Custom error class
• Practice: Implement REST service (keeping data in session) [2h]
Async/await syntax. Working with file system.
• Async/await syntax
o Async/await syntax and parallel execution
o Exception processing with Async/await
o Loops with async/await
o Async/await in Express
• Working with files
o Reading from file
o Writing to the file
o Reading file with async/await syntax
o Low-level work with files
o Sync calls exception handling
o Async calls exception handling
o Listing files in folder
• Practice: Implement REST service (keeping data in files)
Using MongoDb with NodeJS
• What is MongoDb?
• What is Mongo Db good for?
• Impedance mismatch (object-oriented vs. relational)
• No impedance mismatch with MongoDb
• MongoDb vs. Relational database
o Inserting documents to MongoDb collection
o The problem: slow search in collections
o Solution: building indexes
• Finding documents in MongoDb
o Find: queries
o Find: projections
o Find: cursors
o How to implement paging
• Updating documents in MongoDb
o Update: replacing document
o Update: changing only part of the document with operators
• Using MongoDb with NodeJS
o Connecting to MongoDb from NodeJS server
o Reading data from MongoDb with Express
o Writing data to MongoDb with Express
o Deleting/updating data with Express
• Practice: Implement REST service (keeping data in MongoDb)
NodeJS advanced topics
• Node event loop and timers
o Set immediate
o Process nextTick
o Unref and clearInterval
o Node event loop in depth
o Timers
• Node event emitter
• Node streams
o File streams
o Readable and writable streams
o Creating big file with streams
o Creating writable stream and stream data processing
o Creating server with Stream API
o Stream types in Node.JS
o Stream events
o Transform streams
o Using pipes for data processing
o Demonstrations
• Streaming in Express
o Streaming in Express
o Streaming in Express based on Event Emitter
o Streaming in Express when sending big amounts of data
o Demonstrations
• Kafka
o Kafka architecture overview
o Kafka producer with Kafka.js
o Kafka consumer with Kafka.js
o Demonstrations
• WebSocket protocol
o What is WebSocket protocol?
o When is WebSocket protocol needed?
o WebSocket on the server-side with NodeJS
o WebSocket on the client side
o Demo application
• Node cluster deployment
o Node server without cluster support
o Node server with cluster support
o Node cluster module
o Node cluster with PM2
o Node server crash
o Automatic restart on server crash with PM2
o PM2 server monitoring
o Express cluster with shared sessions (with mem-cached)
o Collecting and analysing logs in cluster mode
o Benchmarks and stress tests of single vs. cluster NodeJS deployments
o Demonstrations";s:4:"TYPE";s:4:"HTML";}
• What is Node.JS?
• Node.JS features
• Multithreaded server request processing
• Node.JS request processing with event loop
• NPM package manager
o package.json
o package-lock.json
o NPM folders
o Semantic versioning in NPM
o NPM commands
o Nodemon
• CommonJS and ES2015 module systems
• Simple http server
• Simple http server returning JSON
Express framework
• Minimal Express app
• MVC pattern
• Express routing
o Request params
o Request query
o App.route()
o Put router to separate module
o Response methods
• Pug template engine
o Loops in Pug
o Conditions and variables
o Each
o Template inheritance
o Block append/prepend
o Mixins
• Middleware
o What is middleware
o How to create your own middleware (example with logging)
o Middleware to work with sessions
o Body-parser to parse POST requests body
o Express structure with middleware
o Middleware to serve static files
o Restricting middleware to route
o Order of middleware calls
• Express in practice
• Rest approach
o MVC pattern with REST server
o REST requests to obtain data
o Creating data in REST
o Updating and deleting data in REST
o Returning data format, Content-Type and Accept headers
o REST API summary and use cases
o REST statelessness vs statefulness
o REST statelessness and scalability
o REST statelessness and reliability
• Using Express to create REST service
• Error handling in Express
o Default error handler
o Custom error class
• Practice: Implement REST service (keeping data in session) [2h]
Async/await syntax. Working with file system.
• Async/await syntax
o Async/await syntax and parallel execution
o Exception processing with Async/await
o Loops with async/await
o Async/await in Express
• Working with files
o Reading from file
o Writing to the file
o Reading file with async/await syntax
o Low-level work with files
o Sync calls exception handling
o Async calls exception handling
o Listing files in folder
• Practice: Implement REST service (keeping data in files)
Using MongoDb with NodeJS
• What is MongoDb?
• What is Mongo Db good for?
• Impedance mismatch (object-oriented vs. relational)
• No impedance mismatch with MongoDb
• MongoDb vs. Relational database
o Inserting documents to MongoDb collection
o The problem: slow search in collections
o Solution: building indexes
• Finding documents in MongoDb
o Find: queries
o Find: projections
o Find: cursors
o How to implement paging
• Updating documents in MongoDb
o Update: replacing document
o Update: changing only part of the document with operators
• Using MongoDb with NodeJS
o Connecting to MongoDb from NodeJS server
o Reading data from MongoDb with Express
o Writing data to MongoDb with Express
o Deleting/updating data with Express
• Practice: Implement REST service (keeping data in MongoDb)
NodeJS advanced topics
• Node event loop and timers
o Set immediate
o Process nextTick
o Unref and clearInterval
o Node event loop in depth
o Timers
• Node event emitter
• Node streams
o File streams
o Readable and writable streams
o Creating big file with streams
o Creating writable stream and stream data processing
o Creating server with Stream API
o Stream types in Node.JS
o Stream events
o Transform streams
o Using pipes for data processing
o Demonstrations
• Streaming in Express
o Streaming in Express
o Streaming in Express based on Event Emitter
o Streaming in Express when sending big amounts of data
o Demonstrations
• Kafka
o Kafka architecture overview
o Kafka producer with Kafka.js
o Kafka consumer with Kafka.js
o Demonstrations
• WebSocket protocol
o What is WebSocket protocol?
o When is WebSocket protocol needed?
o WebSocket on the server-side with NodeJS
o WebSocket on the client side
o Demo application
• Node cluster deployment
o Node server without cluster support
o Node server with cluster support
o Node cluster module
o Node cluster with PM2
o Node server crash
o Automatic restart on server crash with PM2
o PM2 server monitoring
o Express cluster with shared sessions (with mem-cached)
o Collecting and analysing logs in cluster mode
o Benchmarks and stress tests of single vs. cluster NodeJS deployments
o Demonstrations";s:4:"TYPE";s:4:"HTML";}
Schedule and prices
View:
Register for the next course
Registering in advance ensures you have priority. We will notify you when we schedule the next course on this topic
Courses you may be interested in
Introduction to Programming with JavaScript
An introduction to programming using JavaScript. It covers introductory HTML and CSS and the main JavaScript structures and concepts.
Online:
15.05.2023 - 24.05.2023
JavaScript development
In this training we look at JavaScript (EcmaScript 2015+), using JavaScript for working in browsers (UI events, manipulating HTML with DOM CSS), JavaScript modules (NPM, Webpack), working with the server (HTTP protocol, REST, AJAX, Axios, WebSocket).