You are on page 1of 6

Node.

js, Express Training

Node.js is a performance driven, asynchronous JavaScript runtime, used for developing


Web, Mobile apps, Web Services, Desktop and IoT applications. Software Developer
should learn Node.js correctly to use in production applications, to get all the benefits
and features offered by Node.js asynchronous architecture. This training includes
extensive workshop sessions, in-depth content, with hands-on from an experienced
Chief Software Architect, Developer & Trainer who has architected, developed more
than 20+ applications & products for Web, Mobile, Desktop.

Node.js, Express Training covers intermediate to advanced topics, 75% of the course is
hands on, 25% for trainer instructions, demos.

This course is designed to meet day-to-day challenges faced by software developers


while developing Express and Node Application. The course sessions are designed to
build a project in iterative mode with best practices followed in the industry, close to real
application. By end of the training, developers shall have experience of applying all
concepts learned on a project, ready to apply skills on production applications.

Duration: 5 Days

Summary

Pre-requisites
Softwares & 1. Install NodeJS 6.10 LTS from
Tools https://nodejs.org/en/download/

2. Google Chrome Version 55 or later


https://www.google.com/chrome/browser/desktop/

3. Git - https://git-scm.com
4. Visual Studio Code https://code.visualstudio.com/
5. Oracle

Database MongoDB

Or

Oracle
IDE Visual Studio Code
Developer Skill Basic JavaScript (/Intermediate preferred) level
HTML 5, CSS Basic level
Web Technologies, Sessions, Cookies, HTTP Protocols,
Headers
Below skills are preferred, but can be done along with
course as well.

RESTful APIs (basic level) (GET/POST/DELETE methods)


Awareness of ES6 (ECMA 2015) preferred
http://es6-features.org/
Internet Course need fulltime internet connectivity for Developers.
Trainer shall use DataCard or Company given WIFI
connectivity
Firewall If you have firewall setup, you should enabled npm
registry, github website or provide a proxy settings with
username/password for installing software modules
System Laptop/Desktop PCs with one of the operating system
1. Windows 7.0 or later
2. Mac OS 10.11
3. Ubuntu Linux Desktop 15.10 or later
Administrator All the systems must have Administrator privileges for
Account developers attending training.
Node.js, ExpressJS
Introduction Node.js Introduction

Covers Node.js basics, introduction to Google V8, LibVU,


Node.js Single Threading, process.tick, Architecture, get started
with code samples
NPM Introduction to npm
npm Init
Installing npm Packages
Dependency Management
Development Dependency
npm Scripts
Global Modules vs Local modules

Creating Node.js projects


Package file, “main” file, index.js files
Importing & reusing node.js modules in various projects
Version management of Node modules
CommonJS, Introduction to JavaScript Scope Issues
Module Introduction to Common JS
Resolutions
Modules, Module Scoping
CommonJS ‘require’ and “module.exports”
Important of CommonJS in JavaScript Application
Why CommonJS for React.js or Modern day web app
development
Module Default Exports
Node ES2015/ES6 New ES6 Features
Classes, Inheritance, Getter, Setter
Constructor
Inheritance
Block Scope
Module Scope
Arrow => operator
Default variables
Rest operator
Deconstruct operator
Solving ‘this’ reference issues with Arrow operator
Array map functions
Iterator, Generators
Babel Compiler (Es6 to ES5)
Babel Configuration, Presets

Core-JS, ES6 Polyfills


Asynchronous Asynchronous Introduction
Programming Callback
Promises
Callback Hell, Managing Better Callbacks
Async Library https://github.com/caolan/async
ExpressJS Introduction to MVC
Express JS Web Framework Introduction
Understanding GET, POST methods in Express

Request/Response in Express
Serving Text, JSON, HTML, File Contents
Reading incoming headers
Sending headers to client
Set/Get Cookies values

Body Parser Plug-in


Working with Query String, POST Data
Middleware with use
Sending Status Code to client

Handing 40x client errors


Capturing Exceptions, 50x server errors
Express Routing Basic Routing
Route params
Express Router
Template/View EJS Template
Engine Why EJS, Performance
Layout, Master Layout using include
Caching Configuration
Rendering Data
Conditions
Looping

Express – Web, REST API Advanced

Express & MySQL Introduction


MySQL Connecting to MySQL DB

Express & Handling forms with Express JS


Form Handling Handling form submission, redirects
Handling Edit/new resource creation
CRUD Implement a CRUD application, for a Product spec
Application Database, validate the user input,
Store/Retrieve to DB
Delete/update data in DB

Validation Server side form validation


Custom Validation
Session Session Management
Server Side Sessions
Using Oracle for sessions
CSRF Cross Site Scripting
Security & CSRF Prevention
Best practices for escaping vulnerable tags scripts, img
Authentication Using PassportJS Local Strategy, Cookie Based Login for
Web Pages

OAuth with Social Application (github.com) with PassportJS


REST API Introduction to REST
Service Implement GET, POST, PUT, DELETE API Methods
REST Status Codes
REST Error Handling

Socket.io, Unit testing, Angular


Topic
CORS Same Origin Vs Cross Origin Understanding, Security
Understanding OPTIONS, PUT methods for CORS
Cross Origin Request Sharing, headers features
Securing Using JWT Token based authentication for APIS for
RESTFul API ExpressJS APIs
Services
Token Expiration/Renewal
Token Generation Polices
Encryption and Decryption of Tokens
Token Verification and Validation
REST & Status Most used HTTP Status Codes and Best Practice to
Codes implement RESTful APIs

Handling multiple versions in the API


Working with WebSocket introduction
Socket.io HTTP CONNECT method, tunneling
Implementing Websocket with Express/Node and
Socket IO
Socket events, emit, broadcast
Unit Testing BDD Test Cases
Unit Testing and Node Introduction
Mocha
Running Test Cases
Debugging Debugging NodeJS Code with Visual Studio Code
Node.js Tools Node forever
Load Balancing Approaches
Clustering
Best practices for Scalable Node.JS Application
JSHint
Minification

You might also like