Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

ksashikumar/node-tutorial

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction:

  • JS - prototype based, dynamic, object oriented language
  • JS Engine - V8, Chakra, SpiderMonkey
  • NodeJS is not a language or framework, its runtime for JS
  • NodeJS is non-blocking event-driven asynchronous runtime

NodeJS Architecture:

  • NodeJS - V8 + libuv
  • Eventloop - hotel waiter kitchen example with eventqueue/callbackqueue
  • NodeJS is for I/O or Network intensive applications and not for CPU intensive applications

NodeJS Installation:

Modules:

  • Global Object
  • Module per file abstraction
  • Module Creation
  • require vs import -> ES Modules and CommonJS modules
  • Module Wrapper Function

Default Modules:

  • Path Module
  • OS Module
  • File System Module
  • Events Module
  • Event Arguments
  • Extending Event Emitter
  • HTTP Module

Package Manager:

  • Introduction
  • Package.json
  • Node Package Installation
  • Using a Package
  • Package Dependencies
  • NPM Packages and Source Control
  • Semantic Versioning
  • Listing the Installed Packages
  • Registry Info Viewing for A Package
  • Specific Version of a Package Installing
  • Local Packages Updating
  • DevDependencies
  • A Package Uninstalling
  • Working with Global Packages
  • Updating a Published Package

HTTP & ExpressJS:

  • Building RESTful API's Using Express
  • Introduction
  • RESTful Services
  • Introducing Express
  • First Web Server Building
  • 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

Express- Advanced Topics

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

Asynchronous JavaScript

  • Synchronous vs Asynchronous Code
  • Patterns for Dealing with Asynchronous Code
  • Callbacks
  • Callback Hell
  • Named Functions to Rescue
  • Promises
  • Replacing Callbacks with Promises
  • Consuming Promises
  • Creating Settled Promises
  • Running Promises in Parallel
  • Async and Await

CRUD Operations Using Mongoose

  • Introducing MongoDB
  • Installing MongoDB on Mac
  • Installing MongoDB on Windows
  • Connecting to MongoDB
  • Schemas
  • Models
  • Saving a Document
  • Querying Documents
  • Comparison Query Operators
  • Logical Query Operators
  • Regular Expressions
  • Counting
  • Pagination

Mongo - Data Validation

  • Validation
  • Built-in Validators
  • Custom Validators
  • Async Validators
  • Validation Errors
  • SchemaType Options
  • Project- Add Persistence to Genres API
  • Project- Build the Customers API

Mongoose- Modeling Relationships between Connected Data

  • Modelling Relationships
  • Referencing Documents
  • Population
  • Embedding Documents
  • Using an Array of Sub-documents

Authentication and Authorization

  • Introduction
  • Creating the User Model
  • Registering Users
  • Using Lodash
  • Hashing Passwords
  • Authenticating Users
  • Testing the Authentication
  • JSON Web Tokens
  • Generating Authentication Tokens
  • Storing Secrets in Environment Variables
  • Setting Response Headers
  • Encapsulating Logic in Mongoose Models
  • Authorization Middleware
  • Protecting Routes
  • Getting the Current User
  • Logging Out Users
  • Role-based Authorization

Handling and Logging Errors

  • Introduction
  • Handling Rejected Promises
  • Express Error Middleware
  • Removing Try Catch Blocks
  • Express Async Errors
  • Logging Errors
  • Logging to MongoDB
  • Uncaught Exceptions
  • Unhandled Promise Rejections
  • Error Handling Recap
  • Extracting Routes
  • Extracting the Db Logic
  • Extracting the Logging Logic
  • Extracting the Config Logic
  • Extracting the Validation Logic

Unit Testing

  • What is Automated Testing
  • Benefits of Automated Testing
  • Types of Tests
  • Test Pyramid
  • Tooling
  • Writing Your First Unit Test
  • Testing Numbers
  • Grouping Tests
  • Refactoring with Confidence
  • Testing Strings
  • Testing Arrays
  • Testing Objects
  • Testing Exceptions
  • Continuously Running Tests
  • Exercise- Testing the FizzBuz
  • Interaction Testing
  • Jest Mock Functions

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.