NodeJS, Express and MongoDB Training Course

Course Introduction

Node.js, or Node, is a runtime environment for executing JavaScript code outside of a browser. It is ideal for building highly-scalable, data-intensive backend services (APIs) that power your client’s apps (web or mobile apps).

Do you want to build fast and powerful back-end applications with JavaScript? Would you like to become a more complete and in-demand developer? Then Node.js is the hot technology for you to learn right now, and you came to the right place to do it. This course is the perfect all-in-one package that will take you from a complete beginner to an advanced, highly-skilled Node.js developer.

Who should attend?

  • Beginner or advanced web developers who want to dive into backend (server-side) development.
  • Back-end developers familiar with other frameworks like ASPNET, Rails, Django, etc and want to add Node to their toolbox.

Requirements

  • Any computer and OS will work — Windows, macOS or Linux
  • Absolutely NO understanding of NodeJS or back-end development is required
  • Basic understanding of JavaScript is required

Duration

10 days

Course Objectives

What you will learn:

  • Fundamentals of Node.js, core modules and NPM (Node Package Manager)
  • Event loop, blocking vs non-blocking code, event-driven architecture, streams, modules etc
  • Fundamentals of Express (Node.js framework): routing, middleware, sending responses
  • RESTful API design and development with advanced features: filtering, sorting, aliasing, pagination
  • Server-side website rendering (HTML) with Pug templates
  • CRUD operations with MongoDB database
  • Advanced MongoDB: geospatial queries, aggregation pipeline, and operators
  • Fundamentals of Mongoose (MongoDB JS driver): Data models, CRUD operations, data validation, and middleware
  • Advanced Mongoose features: modeling geospatial data, populates, virtual populates, indexes
  • Using the MVC (Model-View-Controller) architecture
  • Advanced data modelling: relationships between data, embedding, referencing
  • Modern authentication with JWT
  • Security: best practices, encryption, sanitization, rate limiting
  • Deploying Node.js applications

Course Content

Module I

Getting Started

  • What is Node and how it works?
  • Node Architecture
  • Intsalling NodeJS and Creating the first Application

Quick JavaScript Refresher

  • JavaScript in a Nutshell
  • Refreshing the Core Syntax
  • let & const
  • Understanding Arrow Functions
  • Working with Objects, Properties & Methods
  • Arrays & Array Methods
  • Arrays, Objects & Reference Types
  • Understanding Spread & Rest Operators
  • Destructuring
  • Async Code & Promises
  • Template Literals

Understanding the Basics

  • How The Web Works
  • Creating a Node Server
  • The Node Lifecycle & Event Loop
  • Controlling the Node.js Process
  • Understanding Requests
  • Sending Responses
  • Request & Response Headers
  • Routing Requests
  • Redirecting Requests
  • Parsing Request Bodies
  • Understanding Event Driven Code Execution
  • Blocking and Non-Blocking Code
  • Node.js - Looking Behind the Scenes

Module II

Node Module System

  • Global Object
  • Modules
  • Creating a Module
  • Loading a Module
  • Module Wrapper Function
  • Path Module
  • OS Module
  • File System Module
  • Events Module
  • Event Arguments
  • Extending Event Emitter
  • HTTP Module

Node Package Manager

  • Package.json
  • Installing a Node Package
  • Package Dependencies
  • NPM Packages and Source Control
  • Semantic Versioning
  • Listing the Installed Packages
  • Viewing Registry Info for a Package
  • Installing a Specific Version of a Package
  • Global and Local npm Packages
  • DevDependencies

Module III

Building RESTful API's Using Express.js

  • What is Express.js?
  • Installing Express.js
  • RESTful Services
  • Introducing Express
  • Building Your First Web Server
  • Nodemon
  • Environment Variables
  • Route Parameters
  • Handling HTTP GET Requests
  • Handling HTTP POST Requests
  • Calling Endpoints Using Postman
  • Input Validation
  • Handling HTTP PUT Requests
  • Handling HTTP Delete Requests

Advanced Express.js

  • Middleware
  • Creating Custom Middleware
  • Built-In Middleware
  • Third-party Middleware
  • Environments
  • Configuration
  • Debugging
  • Templating Engines
  • Database Integration
  • Authentication
  • Structuring Express Applications

Module IV

Working with NOSQL and using MongoDB

  • What is MongoDB?
  • Installing MongoDB on macOS
  • Installing MongoDB on Windows
  • Connecting to MongoDB
  • Schemas and Models
  • CRUD: Creating Documents
  • CRUD: Querying (Reading) Documents
  • CRUD: Updating Documents
  • CRUD: Deleting Documents
  • Using Compass App for CRUD Operations
  • Creating a Hosted Database with Atlas
  • Connecting to Our Hosted Database
  • Pagination

MongoDB with Mongoose

  • What is Mongoose?
  • Connecting to the MongoDB Server with Mongoose
  • Saving Data Through Mongoose
  • Modelling Relationships
  • Referencing Documents
  • Population
  • Embedding Documents
  • Validation
  • Built-In Validators
  • Custom Validators
  • Async Validators
  • Validation Errors
  • SchemaType Options

Module V

Error Handling with Express

  • Debugging Node.js with ndb
  • Handling Unhandled Routes
  • An Overview of Error Handling
  • Implementing a Global Error Handling Middleware
  • Better Errors and Refactoring
  • Catching Errors in Async Functions
  • Adding 404 Not Found Errors
  • Errors During Development vs Production
  • Handling Invalid Database IDs
  • Handling Duplicate Database Fields
  • Handling Mongoose Validation Errors
  • Errors Outside Express: Unhandled Rejections

Authentication and Authorization

  • What is Authentication?
  • How Authentication is Implemented
  • Using Lodash
  • Hashing Passwords
  • CSRF Token
  • JSON Web Tokens
  • Generating Authentication Tokens
  • Storing Secrets in Environment Variables
  • Setting Response Headers
  • Encapsulating Logic in Mongoose Models
  • Authorization Middleware
  • Protecting Routes
  • Role Based Authorization

Module VI

Testing

  • Unit Testing
  • Integration Testing

Deployment

  • Preparing the App for Production and Deployment
  • Joining Heroku and GitHub
  • Version Control with Git
  • Exploring and Integrating Git
  • Setting up SSH Keys
  • Pushing Code to GitHub
  • Deploying Node.js to Heroku
  • New Feature Deployment Workflow
  • Avoiding Global Modules
  • Viewing Logs
  • Setting Environment Variables
  • MongoDB in the Cloud

Methodology

The instructor led trainings are delivered using a blended learning approach and comprise of presentations, guided sessions of practical exercise, web based tutorials and group work. Our facilitators are seasoned industry experts with years of experience, working as professionals and trainers in these fields.

All facilitation and course materials will be offered in English. The participants should be reasonably proficient in English.

Accreditation

Upon successful completion of this training, participants will be issued with a certificate of participation.

Training venue

The training is residential and will be held at T4D Training Centre in Westlands Nairobi, Kenya. The course fees cover the course tuition, training materials, two break refreshments, lunch, and study visits.

All participants will additionally cater for their, travel expenses, visa application, insurance, and other personal expenses.

Tailor- made

We can also tailor-make our courses for you. This way, you/your organization will benefit by:

  • Using own tools during the training
  • Being able to choose areas of interest you wish the trainer to put more emphasis on
  • Taking the course in-house or at a venue of choice
  • Cutting on the cost of transport and accommodation

For further inquiries, please contact us on details below: 

Email: This email address is being protected from spambots. You need JavaScript enabled to view it.

Mobile: +254 706909947

Accommodation

Accommodation is arranged upon request. For reservations contact the Training Officer.

Email: This email address is being protected from spambots. You need JavaScript enabled to view it.

Mobile Number: +254 706909947

Training fee

The course fee is KES 150,000.00 or USD 2,200.00 exclusive of VAT. The course fees covers the course tuition, training materials, two (2) break refreshments, lunch and study visits. Participants will cater for their travel and accommodation costs.

Payment

Payment should be transferred to Tech For Development - T4D account through bank on or before the course starting date.

Send proof of payment to This email address is being protected from spambots. You need JavaScript enabled to view it.

Cancellation policy

Payment for the all courses includes a registration fee, which is non-refundable, and equals 15% of the total sum of the course fee.

  1. Participants may cancel attendance 14 days or more prior to the training commencement date.
  2. No refunds will be made 14 days or less to the training commencement date. However, participants who are unable to attend may opt to attend a similar training at a later date, or send a substitute participant provided the participation criteria have been met

Please Note: The program content shown here is for guidance purposes only. Our continuous course improvement process may lead to changes in topics and course structure

Event Properties

Event Date 06-04-2020 8:00 am
Event End Date 17-04-2020 5:00 pm
Capacity 100
Cut off date 06-04-2020
Individual Price USD2,200.00
Location T4D Training Center
We are no longer accepting registration for this event
Share this event:

Connect with us

fb Facebook
twitter icon Twitter
linkedin Linkedin

 

Contact us

+254 706909947

 [email protected]

  Westlands Road, 

  Gate 18, 1st Floor, W6.

Search

Essential SSL