Registration
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: [email protected]
Mobile: +254 706909947
Accommodation
Accommodation is arranged upon request. For reservations contact the Training Officer.
Email: [email protected]
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 [email protected]
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.
- Participants may cancel attendance 14 days or more prior to the training commencement date.
- 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